
Java
文章平均质量分 80
shaotianyou.ddd
day day up
展开
-
SpringCloud——Maven方式创建微服务项目(如何分别打包启动)、公共模块如何创建和引入以及如何远程调用(Feign)
SpringCloud依靠maven手动搭建一、创建父工程1.1 创建服务1(service1)1.2 创建服务2(service2)二、maven子模块打包2.1 打包命令2.2 执行命令2.3 可能出现的问题三、公共模块的创建和引入3.1 创建功能模块3.2 引入方式一、创建父工程先创建一个最普通不过的maven项目:IDEA:File ——》 new project ——》 左侧选择maven方式构建(以后也可以选择Spring Inktializr方式后面我会补充),点击next ——》 输原创 2022-01-10 18:14:29 · 5176 阅读 · 0 评论 -
springboot项目——自定义注解实现方法级别的日志管理(附源码地址)
自定义注解实现方法级别的日志管理测试结果截图创建注解类@Log创建切面类LogAspect创建测试LogController测试结果截图以上结果展示了通过注解获取Controller请求地址,方法参数,方法返回结果,方法名,方法类路径,参数名称,参数内容,以及注解相关信息创建注解类@LogBusinessType:拓展类,可以自主添加或者保留想要的信息public enum BusinessType { OTHER, INSERT, UPDATE, DELET原创 2021-08-19 23:10:52 · 687 阅读 · 0 评论 -
插入排序,冒泡排序
插入排序 插入排序 for (int i = 1; i < arr.length; i++) {// 外层循环是默认从第一个开始,默认从此时开始的序列为有序的 for (int j = 0; j < i; j++) {// 从第一个开始找,是否有大于当前当前外层的值,如果大于,则交换,为了保证j之前有序 if (arr[j] > arr[i]) { ...原创 2019-03-23 15:36:31 · 123 阅读 · 0 评论 -
hashMap实现原理
1、数组与链表的优缺点数组数据存储地址连续。查询快,可用二分法,寻址容易,插入删除困难链表数据散列存储。查询慢(只能慢慢的next)。但是增删快(改变next的指向就行)2、hashMap的数据结构正因为上述两个结构各有优缺,hashMap就是将两种结构进行结合,即采用数组+链表的形式,每一个数组中的值存放的是一个Entry类,属性有key(键),value(值),next(下一个...原创 2019-03-23 19:01:24 · 3313 阅读 · 0 评论 -
String,StringBuffer,StringBuilder的区别(代码亲测总结)
1、用String定义出来的是字符串常量,不可以更改;StringBuffer,StringBuilder创建的是变量。what?你在逗我?事实上是真的,只是我们没有看不见而已。看见了吗?我可是改了a的值哟。其实通过网上查询最后发现这是Java虚拟机在背后搞事,在第七行它确实创建了一个对象str,也赋了值,但是第八行却不是重新给a赋值哦,jvm实际上是创建了一个新的对象,赋值bcd,而原来的...原创 2019-03-24 11:19:07 · 229 阅读 · 0 评论 -
java中数据存储位置(堆栈、堆、栈的区别)
一、Java有六个地方可以存储数据寄存器(register):这是最快的存储区,因为它位于处理器内部,相当于操作系统中访问cache一样。堆栈(stack):其实就是栈只是一个抽象的词语而已。创建程序时候,JAVA编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,就是说像int a=1,double b=2等八种基本数据类型为了追求速度就是存放于栈当中。不过有...原创 2019-03-24 14:42:54 · 2952 阅读 · 1 评论 -
java集和摘要(1)
集合框架:集合、链表、数据结构、队列、栈、数组、映射等,都在java.uti.*中Java集合主要分为:List列表、Set集合、Map映射、工具类(Iterator迭代器、枚举类,Arrays和Collections)基本上所有的集合都来自Collcetion,Map两个接口:1、Collection下面主要有List,Set两个分支:List实现类主要有LinkedList,Array...原创 2019-03-28 00:22:31 · 148 阅读 · 0 评论 -
Java—Collection架构(2)
Collection是高度抽象出来的集合,包含集合基本操作添加,删除,遍历获取大小等等Collcetion下面主要有List,Set两个分支:List实现类主要有LinkedList,ArrayList,Vector,Stack;List有序,每一个元素都有一个索引,第一个索引为0,一次递增可以重复Set有HashSet和TreeSet无重复元素另外为了方便,抽象出Abst...原创 2019-03-28 00:29:26 · 118 阅读 · 0 评论 -
java—ArrayList集合(3)
在List集合中ArratList最为常用特点:数组队列,下标从0开始,提供添加,删除修改遍历等功能。实现RandomAccess接口,就是随机访问。通过元素的序列号快速获取元素对象,效率最快实现Cloneable接口,就有clone()函数,能被克隆不是线程安全的,限单线程使用。多线程用Vector(待续)属性:各种函数就不一一列举,在eclipse中定义一个ArrayList出...原创 2019-03-28 00:35:40 · 250 阅读 · 0 评论 -
Mybatis操作mysql(mapper动态代理,Mybatis接口开发(二)完整代码实例)
实现步骤:1、基础环境:和基础方式一样,先配置mybatis环境,mysql驱动,conf.xml、mapper.xml2、(不同之处)约定的目标:省略statement,即根据约定直接可以定位出SQL语句,基于a、接口开发(mybatis基于接口开发,所以先新建一个接口(interface))StudentMapper.java——操作mabatis的接口,该接口中必须遵循以下约定1、...原创 2019-04-01 00:25:12 · 712 阅读 · 0 评论 -
final ,finally,fianlize的区别
1、final作为一个关键字,作用其实就是一个修饰符,可以修饰变量、方法、类,表面意思就是最终的xxx。修饰方法,变量时,代表这个变量不可以被修改,并且必须赋初值(只读不可写),方法也只能被使用,不能被重写(即继承的时候不可重写)修饰类:作用可相当于abstract(抽象类),即不能被继承。2、finally在异常处理过程中try…catch…finally{}中会用到,try…catc...原创 2019-04-02 00:13:29 · 366 阅读 · 0 评论 -
Exception in thread "Thread-675" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
遇到问题的缘由是我在本地(Windows)平台下写了一个客户端和服务端的程序,服务端因为要接受客户端发来的数据进而对本地数据库(MySql)进行操作,而且我底层用的的Mybatis进行数据库从增删改查,因此会涉及到两个jar包,一个是连接数据库的,一个是Mybatis需要的。本地运行是没有任何问题的。一个在发,一个在收,并且能够更改数据成功后来我需要放到服务器(Ununtun)上运行,用ecli...原创 2019-04-26 09:08:04 · 4184 阅读 · 5 评论 -
eclipse将一个Java项目打包成一个可执行文件并放到服务器上运行
1、题目已经说的很清楚了,主要就是eclipse打包项目嘛,直接上图吧首先找到你的整个工程,点击右键,找到一个export(导出)的选项,点击,最后弹出一个窗口2、点击Java,并选中JAR File选项,进入下一步3、此时不需要做任何操作,只需要选择一个路径,并且写上你要打包后的文件名,点击next4、一直点击next后,最后会有一个界面如下,选择你的main函数入口5、点击Br...原创 2019-04-26 09:37:15 · 3875 阅读 · 0 评论 -
多线程实例讲解——服务器与WiFi模块通过Socket通信
如果要找线程与进程的区别,可以转车了哈。首先说一下我的目的:我有一个WiFi模块我希望将其获取到的数据传给我的服务器,服务器一直监听某个端口,然后将收到的数据进行处理,再存入数据库,之后的操作就是显示页面了。因为服务器一直在监听有没有收到信息,或者说是否有连接,那么思路就是主线程是一直监听某个这个信息或者端口,一旦有阻塞(说明有人发数据),就创建一个子线程来接收并处理这个信息**模拟的客...原创 2019-05-08 14:47:40 · 2838 阅读 · 2 评论 -
IDEA创建Maven项目配置Mybatis-generator插件快速生成mapper(Dao)和model(pojo)并完成与mysq的交互(一)
前言:本来老师用的eclipse只需要安装插件,然后运行一个配置文件就行,由于本人对于IDEA的喜爱,只能说自愿入坑!!网上找了一大堆资料,一天一个报错,自己都整懵逼了,。。。。。下面就跟着教程来吧,步骤尽量给大家弄详细点1、创建maven项目(这个就不用说了吧,只是网上很多教程在下面红色箭头的地方会让你选某个选项,起始你可以不用选!!)2、输入项目名,然后点next,然后finish3、...原创 2019-06-06 22:16:29 · 983 阅读 · 0 评论 -
IDEA创建Maven项目配置Mybatis-generator插件快速生成mapper(Dao)和model(pojo)并完成与mysq的交互(二)
在上一篇中(https://blog.youkuaiyun.com/qq_38261445/article/details/91050170)我们实现了用Mybatis-generator插件快速生成mapper文件与model实体类,mapper.xml中基本上实现了对一个实体类中所有的操作,但是在我自己开发的时候依然不知道怎么使用mapper里面的方法,或者说怎么通过某些接口来实现对数据库的操作,因为这里...原创 2019-06-08 17:04:30 · 358 阅读 · 0 评论 -
Maven:Mybatis中使用分页插件PageHelper查询分页数据信息
前言:一句话简单,方便,好用,那为什么不用呢?这里面的测试项目用的是idea写的maven项目,所以基本的架包配置都在pom.xml中。并且底层用的是mybatis自动生成的mapper文件来查询数据库,如果各位同胞用的是eclipse开发或者基于约定来写的查询方法的话,也可以稍稍浏览一下,毕竟原理大家都是差不多的,希望对大家有帮助当然如果你比本小白还小白的话,像项目都没有创建或者什么mapp...原创 2019-06-08 23:52:25 · 811 阅读 · 0 评论 -
Spring IOC(控制反转、依赖注入)给类注入属性值的多种方式
前言:接触Spring的人不可能不接触IOC以及AOP,一个是控制反转(IOC)或者说依赖注入,另一个时面向切面编程(AOP)。要说AOP个人觉得现在使用并不是很广泛,毕竟现在的日志插件太多,AOP主要就是在执行事务的的时候可以执行一些操作,打印日志等。而IOC的思想就是将项目中所有会用到的实体类,放在一个Spring容器中让Spring来管理类的创建或者销毁过程,所以控制的人不再是你,而是Sp...原创 2019-06-10 21:46:43 · 369 阅读 · 0 评论 -
SpringBoot中mapper接口文件无法找到 Consider defining a bean of type 'xx.xx.mapper.xx接口in your configuration
前言:SpringBoot中已近可以说是集合的大部分的框架比如mybatis,maven,spring,对于网上很多说的配置某些路径或者还有某些xml文件来说就显得多此一举了。因此你只需要保证的是pom.xml中有必要的一些基础配置后,如果花游改问题,那就是你注解没有用对的问题了要想找到接口文件,比如我的是注意你的@Mapper是否添加了在你的controller中找到那个调用该mapp...原创 2019-06-13 21:32:03 · 4228 阅读 · 0 评论 -
Reason: Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader
前言:看标题首先,这是springboot中的项目,大致意思是说某个驱动类com.mysql.cj.jdbc.Driver没有加载,你报这个错误的因为是因为找不到对应的连接数据库的驱动包,所以在springboot项目中能涉及到的配置就只有application.properties和application.yml文件了;当然在这之前你的pom.xml至少应该加载了连接mysql的必要包吧 ...原创 2019-06-13 21:53:55 · 57988 阅读 · 2 评论 -
后台返回JSON数据数出错:'object' is an array. Use JSONArray instead
前言:错误的信息是说你所传的对象是一个数组,应该用JSONArray来封装这个数组,那么就代表可能是传数据时封装类型出错了。解决办法:1、如果你要传到前台的数据是一个单一的对象如:map,某一个实体类等封装代码如下:JSONObject jsonObject = JSONObject.fromObject(map);2、如果是类的集合比如List< user >或者数组等(...原创 2019-06-16 21:51:04 · 1642 阅读 · 0 评论 -
LeetCode22. 括号生成——Java递归详解(回溯法)
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] class Solution { public List<String> generateParenthesis(int n) { Li...原创 2019-07-17 20:46:02 · 542 阅读 · 0 评论 -
LeetCode——17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter...原创 2019-07-22 10:15:43 · 197 阅读 · 0 评论 -
JAVA多线程—创建线程的两种方式Runnable和Thread的区别
前言:看到很多博客上都写过多线程的实例以及这两种方式的区别,其中让我报有疑惑的一点是很多都说继承Thread而实现的多线程无法共享资源?我自己下来敲了敲,再结合一些资料做了如下总结先创建了两个类,一个是继承Extends类的,一个是实现了Runnable接口,其中他们的run方法都给他们加上了synchronized (this)表示同步,以免产生不同线程访问到的资源相同(用继承Thread类测...原创 2019-07-22 16:57:56 · 538 阅读 · 0 评论 -
Java研发工程师面试经验
前言:在各大招聘网站、内推军等投了很多简历,初心是远的地方如果有面试机会,那就作为自己的面试经验,然后用在本地(成都)的面试上,最后发现还是自家人照顾自家人啊!北京等远的地方,会先问你现在在哪?要是你说你在四川本地,“抱歉,我们这个职位不适合你”。咦,真不适合看完简历不回你不就行了吗?前一天晚上突然收到一家成都的面试通知,大晚上的还以为是传销呢!差点给他挂了!!还好老弟我收了一手,收到之后马上找...原创 2019-08-20 20:56:35 · 473 阅读 · 0 评论 -
秋招——Java工程师面试经验(阿里淘宝事业部)
前言:九点的时候收到阿里淘宝事业部的面试电话,天气太热还来不及穿上衣服,就匆匆跑到阳台进行面试。还是那句话,有些东西如果不及时回顾,很快就忘了。春招的时候我也面过一次阿里,尤其记得当时从图书馆四楼跑到馆外,慌慌张张面了八分钟,不仅问题没答上,最后也没有向面试官咨询什么信息——这就是我人生的第一次面试,没错我面的阿里!!(再也不想做这种纸张操作了)关于Java基础如何理解Java当中的“一...原创 2019-08-22 23:32:43 · 429 阅读 · 0 评论 -
java——RTTI和反射有什么区别(怎样理解反射更容易)
一、前言这句话很重要:运行时类型信息使得你可以在程序运行时发现和使用类型信息。RTTI和反射的正是这句话的实现方式。RTTI和反射让我们在程序运行能够时识别对象和类的信息。对于RTTI,它假设我们在编译时已经知道了到底是那种类型;而反射机制则是在运行时发现和使用类的信息,具体的区别请见下文。二、怎样理解RTTIRTTI(Run-Time Type Infomation)又叫运行时类型信息。...原创 2019-09-05 00:13:31 · 460 阅读 · 0 评论 -
Java中的并发——(并发的意义与难点、线程机制,如何定义线程任务)
文章目录一、并发的意义二、并发的难点三、java中的线程机制四、如何定义线程任务一、并发的意义并发通常是提高运行在单处理机上的程序的性能这样说的原因是:首先我们会发现在单处理机上运行的并发程序开销应该比该程序的所有部分都顺序执行的开销大,因为其中会增加所谓的上下文切换(也就是进程间的切换,从一个任务切换到另一个任务)。因此从表面上看,如果将程序的所有部分看作是单个任务的运行开销会变小,并且节...原创 2019-09-10 00:03:28 · 666 阅读 · 0 评论