java
文章平均质量分 84
甜的柠檬酸
让学习成为一种习惯。
展开
-
idea调试linux发布的应用
很多时候,由于环境的不同会造成很多莫名其妙的问题,因此我们来介绍一下,不同机器的远程调试。环境说明:1、打包好的应用使用的端口是8081。2、调试的端口是80。3、linux的ip地址是192.168.20.12。配置步骤:1、windows中开发的项目打包,传到linux系统。2、在linux命令中,使用以下命令启动打包好的应用。java -Xdebug -Xrunjdwp:t.........原创 2020-03-17 16:59:26 · 842 阅读 · 0 评论 -
CAP理论与BASE理论
CAP理论 CAP理论是分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错),只能满足其中两项。红色部分观点只是个人为了便于理解CAP所作出的一些说法,例如:强可用性、强分区容错。注意:Consistency(一致性): 这里的一致性是强一致性,表示在......原创 2020-04-13 21:06:07 · 417 阅读 · 0 评论 -
java线程池介绍及运行流程
a队列满了才会开非核心线程数原创 2020-04-01 22:06:49 · 1550 阅读 · 0 评论 -
try...catch....finally执行顺序
例如:int a=10;try{a=20;return a;}catch(Exception e){}finally{a=100;}以上的代码:返回的结果是a等于20。在try块中,a的值为20;在finally中a的值为100;但是最终的结果为什么返回的是20呢?try…catch…finally执行顺序:1、正常的情况下,是执行try里面的语句,如果try中的语句块有异...原创 2020-03-29 10:06:49 · 287 阅读 · 0 评论 -
深入理解java虚拟机之内存篇读后感
java应用程序有两种类加载器: bootstrap类装载器和用户自定义的类装载器。java安全模型组成(沙箱)1、类加载器结构作用:采用双亲委托机制,在同一个命名空间中,不能存在两个签名相同的类。2、class文件校验器 作用: 保证每一个方法在被调用时,方法传入参数正确,变量在使用前赋值,变量类型正确以及一个类的构成是正确无误等。 在解析变量引用的时候,当涉及到了...原创 2020-03-29 08:20:45 · 185 阅读 · 0 评论 -
java之replaceAll方法遇到的坑
java使用replaceAll()替换字符串://实际上我的内容是\\\",但是这里由于斜杠和双引号所以都要转义str="\\\\\\\"";//replaceAll内部使用的是正则的方式,所以对斜杠进行了转义,而斜杠又是特殊符号,所以这里要使用双重转义12个斜杠才能替换掉\\\"str=str.replaceAll("\\\\\\\\\\\\\"","");replaceAll()...原创 2020-03-20 16:15:32 · 1774 阅读 · 0 评论 -
idea之jar打包
1、点击File->Project Structure.2、点击 加号->JAR->选择From modules with dependencies3、选择模块以及main方法所在的class,然后点击ok。4、点击Build->build Artifacts。5、点击build。...原创 2020-03-19 10:37:57 · 817 阅读 · 0 评论 -
java之Iterator移除元素
可以通过Iterator.remove()方法移除迭代器中的元素,remove()移除的是当前iterator.next()的元素。注意:如果尚未调用 next() 方法,或者在上一次调用 next() 方法之后已经调用了 remove()加粗样式 方法,将抛出一个IllegalStateException异常。...原创 2020-01-14 15:59:51 · 1008 阅读 · 0 评论 -
java之NIO组成介绍
NIO有三大核心组件:Selector、Buffer、Channel。SelectorBufferChannel三大组件之间的关系1、一个Selector对应一个线程。2、一个Selector对应多个Channel。3、一个Channel对应一个Buffer。4、...原创 2020-01-14 15:57:49 · 412 阅读 · 0 评论 -
java并发之线程池api介绍
ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor类是ScheduleExecutorService接口的实现类。 这个接口是用来开启延时任务的线程池。 &nb...原创 2019-11-22 22:18:55 · 458 阅读 · 0 评论 -
java之线程、锁难理解的形象解释
每个线程之间来回切换都有自己的线程帧,哪怕是线程中有死循环,其实还是断断续续运行的,并不是死循环就一直执行,其他线程就一直阻塞。 多线程并发执行如果不进行一定的处理的话,其实一切都是没有顺序可言的。 每一个线程都会有一个线程栈,方法会产生栈帧,栈帧存储在线...原创 2019-11-22 22:15:12 · 148 阅读 · 0 评论 -
Eclipse按Ctrl+s就无响应卡死
修改web.xml文件操作就无响应。xsd版本和tomcat不一致。eclipse.ini配置文件内存问题。位与(and)运算 &计算规则:假设有两个数a和b,将它们分别转换成二进制。然后两个数对应的二进制数位中都为1结果就为1,如果其中一个数为0或者两个数都为0,则结果为0。举个例子:int a=6;int b=3;int c=a&b;c的值为多少呢?很...原创 2019-11-21 21:15:24 · 799 阅读 · 0 评论 -
Filter的运行流程
提出问题,为什么要有Filter?Filter的作用Filter的生命周期ApplicationFilterChainApplicationFilterChain是FilterChain的实现类。通过jad反编译得到ApplicationFilterChain的部分代码://这一块数组默认长度等于0,如果有用户注册了filter,ApplicationFilterChain会调用add...原创 2019-11-21 21:14:39 · 579 阅读 · 0 评论 -
hibernate懒加载实现原理
懒加载实现方式在hibernat中,有一些查询的方法(load)在查询的时候并不会真正的查询数据库,然后返回所在数据库中记录所映射成的对象,并不会真正的返回一个这样的对象。而是在查询的时候,返回一个代理的对象(为什么这个代理的对象可以强转成实际操作的实体类?下面会提到),这个代理的对象是被new出来的,并没有真正的查询数据库,只有在你使用了这个代理的对象的属性,方法之后才会真正的查询数据库,然后...原创 2019-11-21 21:12:32 · 448 阅读 · 0 评论 -
程序中解决问题的思想
1、分而治之,笼统的说,就是将一个大的问题分解成多个小的问题。有点类似于递归。2、增加一个中间抽象层。原创 2019-11-21 21:10:42 · 198 阅读 · 0 评论 -
SSM框架搭建流程---传统方式
1、导入ssm框架所需要的jar包。2、配置mybatis的配置文件。例如:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&g...原创 2019-11-21 21:07:09 · 181 阅读 · 0 评论 -
java之quartz定时任务
1、首先需要先导入quartz的jar包。2、创建业务逻辑处理类实现Job接口,然后重写execute方法。3、创建JobDetail,将job业务关联起来。4、创建CronTrigger触发器,创建定时任务url,设置任务触发时间。5、创建任务调度器用于启动业务逻辑。job任务:public class HelloJob implements Job{ @Override p...原创 2019-11-21 21:05:56 · 328 阅读 · 0 评论 -
第三方登录
1、为什么先返回code呢?这个返回的code只能够使用一次。这个code是从qq的服务器返回给网站时,我们时通过浏览器来实现的,在这个传输的过程中,是有可能被人捕获的,假设返回的是token别人就能使用token去换取数据了。再者,这个code是一次性的,就算被别人捕获到了也没有用,因为已经使用过一次了,已经失效了。为什么要使用token换取用户信息呢?为什么不直接返回用户信息呢?...原创 2019-11-21 21:02:16 · 329 阅读 · 0 评论 -
spring-boot中使用redis
redis是一种以key-value形式存储的数据库,一般用来缓存用的比较多。下面我们来介绍一下spring-boot中如何使用redis来存储数据。1、在pom.xml文件中添加redis依赖。 <!--集成redis--> <dependency> <groupId>org.springframework...原创 2019-11-21 21:01:36 · 108 阅读 · 0 评论 -
java之自定义注解实现日志管理
1、首先自定义一个注解,该注解有两个属性,一个是模块名,一个是操作的内容。该注解是用来修饰Service层中的方法的。2、创建一个切面类,该切面使用@Aspect和@Component注解修饰,该页面需要注入一个HttpSession对象。注意:一个普通的java类是不能注入HttpSession对象的,因此需要在web.xml文件中配置 <!-- 此监听器出用于主要为了解决j...原创 2019-11-21 21:00:43 · 877 阅读 · 0 评论 -
java之自定义ClassLoader类加载器
BootStrapClassLoader是jvm自带的一个类加载器,负责加载java核心包。ExtClassLoader:负责加载扩展包的。AppClassLoader:负责加载ClassPath目录下的类,实际上就是我们自己写的java类,就是由AppClassLoader负责加载的。也可以自定义类加载器。热部署实现原理就是自定义类加载器。java中的类加载器的选择是从底层往下加载的...原创 2019-11-21 21:00:02 · 416 阅读 · 0 评论 -
idea之创建目录与转换目录
当使用idea创建好项目,发现项目目录结构和自己想要的页面不太一致。就可以点击要更改目录结构的项目,然后使用alt+shift+ctrl+s,进入Project Structure对话框;然后选择右边的Modules,选择自己要更改的项目,点击sources,然后就可以在该项目下创建目录,并且转换目录了。...原创 2019-11-21 20:56:24 · 1053 阅读 · 0 评论 -
lombok之使用注解添加实体类的方法
lombok是一个第三方的jar包,要使用该包的注解,需要先在pom中添加lombok的依赖。@Data:注解在类上,给类提供了set,get,equasl,toString,hashCode等方法。@NoArgsConstructor:给类添加一个无参数的构造方法。@AllArgsConstructor:给类添加一个全参的构造方法。@Accessors(chain=true):让该类的实...原创 2019-11-21 20:55:14 · 1361 阅读 · 0 评论 -
DruidDataSource配置无效问题
aa原创 2019-11-21 20:44:22 · 4428 阅读 · 0 评论 -
Mybatis与mapper.xml参数传递问题
情况一:Dao接口:public class UserDao{ public User selectUser(String name,String password);}Dao接口对应的mapper.xml:错误写法<select id="selectUser" resultType="..........User" parameterType="String"&...原创 2019-11-21 20:40:20 · 599 阅读 · 0 评论 -
java并发之线程与线程池的区别及使用
转载于:https://blog.csdn.net/lqzkcx3/article/details/82712721转载 2019-10-26 15:40:26 · 190 阅读 · 0 评论 -
maven打包java应用项目
有的时候,我们需要会使用javaSE打包项目,然后将外部依赖的jar包都打包在一个jar中,然后直接运行这个jar就行了。默认的maven打包打包出来,jar里面的MAINFEST.MF里面是没有指定MAIN.CLASS的。可以指定pom.xml中maven的版本为以下:<build> <plugins> <plugin&...原创 2019-10-26 15:17:51 · 370 阅读 · 0 评论 -
java中十分强大的一些api
LocalDateTime时间对象,就像Calendar类类似,里面涵盖了很多时间的操作。jdk1.8才有的TimeUnit一般和线程池和任务一起搭配使用,里面具有很多时间单位以及时间转换的方法。jdk1.8才有的...原创 2019-10-25 21:08:08 · 268 阅读 · 0 评论 -
java之bean的注入方式
@Autowired@ResourceQualifier原创 2019-10-12 15:49:04 · 1729 阅读 · 0 评论 -
在idea配置自己安装的svn遇到的问题
这个地址方法需要配置成以下:如果自己安装的svn中没有svn.exe文件,则可能是因为安装的 TortoiseSVN,这种 TortoiseSVN没有安装svn.exe,可以再次运行 TortoiseSVN的安装文件,然后选中modify,把下图的这个勾上,然后就点下一步下一步就可以了。在进idea->setting->svn就可以添加svn.exe了。...原创 2019-09-03 21:09:54 · 176 阅读 · 0 评论 -
idea之maven设置
idea创建的maven项目或者是springboot等项目,默认使用的都是idea自带的maven,并且使用的仓库也是maven自带的。这就会导致有的时候pom文件依赖会下载失败。一次可以在settin中的maven设置,选中自己添加的的maven插件,将仓库和setting后面的Override勾选上。以后创建出来的项目就是使用自己指定maven仓库了。...原创 2019-09-03 21:12:39 · 225 阅读 · 0 评论 -
idea无法正常显示配置文件图标
1、首先project structure界面将项目对应的文件夹转成source和resource文件夹。2、然后进入setting在file types中的YAML,查看下面的Registered Patterns中是否有*.yml,若没有,则添加上去;最后保存就可以了。注意:如果没有添加springboot的依赖,properties和yml文件也不能正常的显示它的文件图标。...原创 2019-09-03 21:14:45 · 2323 阅读 · 1 评论 -
使用IDEA之项目常见的问题以及maven一些常见的问题
1、command line is too long 。解决方式:在idea中的workspace.xml文件中加上<component name="PropertiesComponent"> <property name="dynamic.classpath" value="true" /></component>...原创 2019-09-03 21:20:20 · 2004 阅读 · 0 评论 -
maven项目一直提示找不到jar包,但是导入进去了,还是不能import class
ddd原创 2019-09-03 21:22:20 · 2112 阅读 · 0 评论 -
使用swagger遇到的坑
1、使用swagger上传文件。使用swagger没有指定multipart/form-data,后台出现not a multipart.2、使用swagger下载文件。使用swagger下载文件出现乱码原创 2019-09-03 21:23:17 · 1147 阅读 · 0 评论 -
linux之搭建redis
1、去官网下载redis安装包,然后将安装包利用远程连接工具,将安装包上传到linux服务器上。我这里将安装包上传到了/opt/redis/目录下。2、进入到/opt/redis目录,解压redis安装包。3、使用yum install gcc命令下载gcc。4、然后进入redis解压安装目录,执行make命令,就在进行编译安装了。5、进入redis的src目录,执行./redis-s...原创 2019-09-05 18:04:06 · 890 阅读 · 0 评论 -
linux之日志查看
日志管理:linux中的日志由rsylogd来管理和维护。rsyslogd日志服务的特点: 1、基于TCP网络协议传输日志信息。 2、更安全的网络传输方式。 3、有日志消息的及时分析框架。 4、后台数据库...原创 2019-09-05 20:07:07 · 398 阅读 · 0 评论 -
springboot集成mongodb数据库
1、springboot中的application.yml的配置。spring: application: name: MongodbDemo#配置mongodb数据库 data: mongodb: port: 27017 uri: mongodb://localhost:27017/springbootDemoserver: port:...原创 2019-09-27 15:17:32 · 478 阅读 · 0 评论 -
spring cloud之Feign风格服务接口搭建和服务熔断
Feign其实就是restTemplate和Ribbon的结合版本。Feign默认负载均衡策略就是轮询方式。创建一个接口,然后使用@FeignClient指定集群的服务名称,去修饰接口,该接口中的方法全部都使用抽象方法,然后使用@RequestMapping修饰,就可以采用像Mybatis的那种面向接口访问的方式访问了。...原创 2019-09-27 15:21:29 · 167 阅读 · 0 评论 -
Java与Oracle数据库转换时间丢失时分秒
以Oracle为例子:如果oracle数据库中时间类型是timestamp的话,则在java中获取该字段也要使用getTimestamp()方式去获取;如果你是使用getDate()获取,而列的类型是Timestamp类型的话,获取出来的时间是没有时分秒的。...原创 2019-03-08 21:00:13 · 1684 阅读 · 0 评论