------JAVA
文章平均质量分 60
环游记
感觉到累的时候,可能正在走人生的上坡路!
展开
-
Idea debug 本地war包web工程
一、背景今天想扒一扒工作流开源项目,是个web工程,tomcat启动后想调试一下,那如何调试tomcat启动的war包工程呢?二、war包部署maven项目执行打包命令打出war包mvn clean build将war包copy到tomcat的webapp目录下cp 你打出的war包目录 /soft/tomcat/webapps启动tomcat到bin目录下:cd /soft/tomcat/binwindows执行命令启动:./startup.batmac执行命令启动:.原创 2022-01-11 13:32:04 · 2215 阅读 · 0 评论 -
Java学习笔记(十四)--Java8类库新特性
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言java8版本是变更最大的一个版本,高效运行事编译器Java虚拟机的出现,使程序员将更多精力放在编写干净,易于维护的代码上,而不用思考如何将每个CPU时钟周期,每字节内存物尽其用。面对大型数据集合,java还欠缺高效的并行操作。java8提供一些新的特性,能够支持代码在多核CP...原创 2018-04-04 17:16:10 · 21267 阅读 · 15 评论 -
多线程学习笔记(一)--多线程相关概念
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言究竟什么时候要使用并行呢?是什么场景都可以达到我们预想的那样高性能吗?2014年底,Avoiding ping pong论坛上,Linus Torvalds提出了一个截然不同的观点,Give it up,The whole "parallel computing is the futu...原创 2018-04-22 21:36:03 · 21541 阅读 · 20 评论 -
多线程学习笔记(三)--用户线程和守护线程
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan阐述Java线程中有两种线程:①用户线程 ②守护线程用户线程:平时用到的普通线程均是用户线程守护线程:指在程序运行的时候在后台提供一种通用服务的线程,守护线程是为用户线程服务的,当有用户线程在运行,那么守护线程同样需要工作,当所有的用户线程都结束时,守护线程也就会停止守护线...原创 2018-04-30 19:39:37 · 22272 阅读 · 6 评论 -
Java学习笔记(十五)--集合
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、集合和数组的区别长度:数组长度固定,集合长度不固定 内容:数组必须存储同一种类型,集合可存储多种不同类型的数据 数据类型:数组可存储基本数据类型和引用数据类型,集合只能存储引用数据类型二、集合因为需要存储变长数据,所以集合应运而生,Java集合主要由两个...原创 2018-04-19 16:24:57 · 21406 阅读 · 20 评论 -
多线程学习笔记(四)--synchronized同步关键字
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan1.前言当多个线程同时访问某一个共享资源时,可能会出现执行结果与期待结果不一致的情况,这时候就是"非线程安全"的。解决"非线程安全"可以采用synchronized关键字锁类或锁对象,本文大部分实例来自于《Java多线程编程核心技术》2.访问对象中实例变量造成"非线程安全"...原创 2018-05-02 10:02:13 · 21612 阅读 · 6 评论 -
多线程学习笔记(五)--Volatile关键字
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan实现了变量在多个线程间可见。我在网上看了许多博客后,发现总结的都差不多,Volatile的几点特性也讲解的听清楚,所以我就不再重写,在此记录以下自己的理解。下图来自网络:1.线程在使用某个变量时,会从主内存读到线程工作内存,当没有加volatile关键字时,一旦线...原创 2018-05-10 08:40:13 · 20470 阅读 · 8 评论 -
多线程学习笔记(六)--重入锁
重入锁重入锁可以完全替代synchronized关键字,jdk5的早期版本中,重入锁的性能远远好于synchronized,在jdk6之后,jdk在synchronized上做了大量的优化,使得两者的性能差距并不大。 ·重入锁简单使用 method1拿到锁之后执行业务代码,method2需要等待method1释放锁资源,从而保证了安全性public class UseReentr...原创 2018-05-12 11:11:15 · 20517 阅读 · 9 评论 -
Java虚拟机学习笔记(一)--运行时数据区域
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干个不同的数据区域。程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器 程序计数器处于线程独占区,Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的...原创 2018-05-07 10:29:45 · 20249 阅读 · 9 评论 -
Java多线程学习笔记(七)--线程池
什么是线程池为了避免系统频繁地创建和销毁线程,我们可以让创建的线程进行复用,线程池是来管理线程的,线程池中总有那么几个活跃线程,当使用线程时可以从池子中随便拿一个空闲线程,当完成工作时,不用立即关闭线程,而是将线程还给线程池,方便下一个要使用线程的任务,有了线程池后,创建线程变成是从线程池中拿线程,销毁线程时变成是将线程还给线程池继续管理。 这种场景非常像在开发中连接数据库,有一个数据库连...原创 2018-05-19 17:47:54 · 20753 阅读 · 12 评论 -
多线程学习笔记(二)--线程的三种创建方式
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan介绍线程的创建方式主要有两种,第一,继承Thread类,重写run()方法,第二,实现Runnable接口,重写run()方法,除此之外还有一种实现callable接口,重写call()方法。继承Thread类缺点:java语言的特点是支持单继承,所以此种方式,不利于扩展...原创 2018-04-29 15:41:00 · 21291 阅读 · 13 评论 -
Java虚拟机学习笔记(二)--垃圾回收
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan如何判定哪些对象为垃圾对象引用计数法实现方式: 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器的值就-1,当计数器的值为0的时候,代表这个对象时垃圾对象,可以执行回收优点: 效率高缺点:...原创 2018-05-07 21:17:59 · 20366 阅读 · 7 评论 -
java8特性--list集合根据多个字段去重
项目需求描述出于项目需要,有一个list,实体包含多个字段,当其中两个字段相同均相同时,就认为list中的两条记录是一样的,本来想通过分组实现,java8的分组只提供根据一个字段分组,只好另寻他路,java8有一个collectingAndThen可以根据多个字段去重,因为我们的需求是可以去重之后操作,因此采用这种方式。分组及去重分组classEntities.stre...原创 2018-05-28 16:02:58 · 68957 阅读 · 24 评论 -
Java反射机制
简述Spring Ioc的原理是工厂+反射,所谓IOC即是控制反转,控制反转是一种思想,一个类想要完成一个功能,非常常见的是需要和其他对象进行合作完成,例如,分层系统中,service层调用dao层,则需要在service层new出一个dao层对象,接着使用,这种是较强的依赖管理,耦合强,一旦dao层做了更改,使用到dao层对象的都需要跟着改动,还有一种情况是多态中的使用,例如有一个水果接口,...原创 2018-06-25 14:54:06 · 19308 阅读 · 11 评论 -
List遍历,边查询边删除
1.在对集合遍历时边查询边执行添加或删除操作会报错:java.util.ConcurrentModificationException,原因是集合引用和迭代器引用在同时操作元素,通过集合获取到对应的迭代器后,在迭代中,进行集合引用的元素添加,迭代器并不知道,所以会出现异常情况ArrayList<Integer> list = new ArrayList<Integer>...原创 2018-08-26 20:19:59 · 20988 阅读 · 3 评论 -
记一次日志优化引发的性能提升
背景阐述:1. 程序中有统一的拦截,入参,出参,请求时间的日志打印2. 接口是一个批量处理接口,一次传入200个id,然后循环处理业务,最终返回,业务接口是A循环调用B方法,其中B方法还会被一个调用量较高的接口调用,高峰期qps达到16003. 在B方法中有三种处理方式,首先,从本地缓存取,取不到数据则从redis中取,从redis取不到再从DB中取,每一种方式都打印一行日志,因此无论命中哪...原创 2019-03-24 20:25:48 · 835 阅读 · 3 评论 -
springboot项目生产环境禁用swagger
我也是百度的,只不过怕自己之后再次使用时还需要去查,就记录一下。建立类Swagger2Config,使用@Profile区分,配置文件中配置spring.profiles.active=dev,test表示在dev和test环境开启,prod环境不开启使用@ConditionalOnProperty,配置文件中配置swagger.enable =true表示开启swagger文档,再生产环...原创 2019-03-31 21:39:22 · 9185 阅读 · 5 评论 -
Java学习笔记(十三)--序列化、反序列化与无参构造函数
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan概念序列化:将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制,从而可以持久的保存在磁盘上,也可以在网络中传输。 反序列化:程序一旦获得了序列化的对象,则这种二进制流都可以恢复成原来的如何实现序列化 1.Ser...原创 2018-04-03 15:48:21 · 31204 阅读 · 10 评论 -
Java学习笔记(十一)--equals与==的区别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言equals和==的区别如果不清楚,则很有可能会混用,导致犯一些低级的错误。equals和==在不同类型中的比较是有差别的。想要弄明白,最好先了解一下基本类型和包装类型https://blog.csdn.net/zh15732621679/article/details/784...原创 2018-03-27 16:46:33 · 20950 阅读 · 23 评论 -
Java学习笔记(十二)--idea配置的jdk是1.8,依旧报错Diamond types are not supported at this language level
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 使用的开发工具是idea,jdk的版本是1.8,jdk1.7提供了菱形语法,在jdk1.7之后,声明一个泛型不需要写尖括号中的类型,否则显得多余。 之前的写法:List<String> strList = new ArrayList<String...原创 2018-04-01 15:56:41 · 22286 阅读 · 7 评论 -
【SSH】Spring框架学习
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 最近在做一个SSH网上商城的项目,在项目中经常要在Spring中,也就是建立的applicationcontext文件中配置Action、Service、Dao等内容。而仔细看看写的都是非常有规律,Action中注入的是相关Service的配置,Service中是相关Dao的...原创 2017-01-25 00:43:56 · 20859 阅读 · 21 评论 -
【SSH】环境配置
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近准备做个项目,是一个商城类的项目,使用的框架是spring+hibernate+strusts2,开发工具使用的是myEclipse10,服务端用的是Tomcat。【myEclipse】 我用的是myEclipse10,直接从网上下载,然后和...原创 2017-01-06 15:16:47 · 21844 阅读 · 22 评论 -
【Java】javaEE的13个技术规范
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 这段时间小编在准备面试和面试之间奔波,javaEE也放了一段时间了,再次拿起来看发现根本不明白在讲些什么,差不多能听明白的是JDBC,和这个材料的共鸣很少,不过在后边的学习过程还要继续学习,所以第一遍先了解一下是什么,在项目中实践时再去用。J2EE的13个技术规范:...原创 2017-01-01 17:41:21 · 28959 阅读 · 20 评论 -
【Demo】一个用Servlet实现的Web项目
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan简介 一个Web项目包括前端和后端,前端是用来显示界面的,和用户交互,后端是用来处理一系列逻辑的。基本的业务流程用一张图表示: 环境配置 1.jdk,jre(如果没有配置,那就去百度教程吧!) 2.apa...原创 2017-04-23 12:05:49 · 23479 阅读 · 29 评论 -
【java】Filter过滤器
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、简介 Filter也称为过滤器,是Servlet中的一项技术,可以管理Web服务器管理的一系列资源,例如jsp,html等。Servlet API中提供了一个Filter接口,在开发web应用时若需要建立过滤器类,则需要实现这个Filter接口,然后实现其doFilter方法,...原创 2017-06-12 19:45:00 · 20730 阅读 · 16 评论 -
【SSH】验证码程序实现
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【简介】 验证码是我们可以保证安全的一种方法。验证码可以用来防止恶意破解密码,和恶意刷票等,我们在日常生活中也常常需要输入验证码,有时候我们需要根据歪七扭八的汉字或者数字去完成验证,而这些操作只有真正的人类才能操作,所以可以有效的防止某些恶意的行为,在开发过程中验证码可能也是...原创 2017-07-15 20:58:59 · 21116 阅读 · 23 评论 -
Java学习笔记(九)——数据类型和运算符
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghanJava标识符 一句话解释:标识符不能是java关键字和保留字 规则:必须以字母、_、$开头 关键字解释:java中具有特殊用途的单词被称为关键字,java所有的关键字都是小写的. java中的50个关键字包括(enum是java5新增的特性):...原创 2017-11-08 21:46:36 · 20890 阅读 · 13 评论 -
Java学习笔记(十)——方法的参数传递机制
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 在之前用C++的时候,参数传递有三种:传值,传地址值,传引用。Java中参数传递机制只有一种:值传递。值传递就是将实际参数值得副本传入方法内,而参数本身不会受到任何影响。基本数据类型参数传递 举个栗子:public class PrimitiveTrans...原创 2017-11-15 10:38:33 · 21813 阅读 · 55 评论 -
Java学习笔记(五)--Error与Exception
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghanError 一般指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败,这种错误属于JVM无法预期的错误,这是JVM层级的错误,发生时将会导致JVM无法继续执行,将会导致应用程序中断,所以就不存在捕获异常这一说法了。所以Error不用使用try...catch捕捉Error...原创 2018-03-14 19:31:46 · 20378 阅读 · 11 评论 -
Java学习笔记(一)--面向对象
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 Java语言是纯粹的面向对象的程序设计语言,这主要表现在java完全支持面向对象的三种基本特征:继承,封装和多态。java语言完全以对象为中心,java程序的最小程序单位是类,整个Java程序由一个一个的类组成。 虽然抽象是面向对象的重要部分,但他不是面向对象的特征...原创 2018-03-03 17:44:24 · 21776 阅读 · 12 评论 -
Java学习笔记(二)--组合与继承
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 继承是面向对象的三大特征之一,也是实现软件复用的重要手段,Java的继承具有单继承的特点,每个类只有一个直接父类,可以有多个间接父类。继承是一种"is-a"的关系。继承 有开发经验的人都知道继承该怎么写,我就不再重复造轮子了! 优点:...原创 2018-03-05 15:08:05 · 25678 阅读 · 13 评论 -
Java学习笔记(三)--多态
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 多态即同一个行为,可以表现出不同的形式。有多态的原因,是因为有继承,子类可以重写父类的方法,所以就可能有不同的表现形式。说到继承,多态的体现在实际编码中会有向上转型与向下转型。向上转型 子类对象转换为父类对象。/** * Created by ...原创 2018-03-05 20:21:30 · 20286 阅读 · 8 评论 -
Java学习笔记(七)--抽象类和接口的异同
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan一、什么是抽象类 抽象类是更高层次的抽象,抽象类和抽象方法都需要使用abstract关键字修饰,类中方法是用来描述类的行为的,但有时候我们只有在运行期间才能确定确切的描述方式,这时候就需要用到抽象类。有抽象方法的类只能定义成抽象类,抽象类中可以没有抽象方法。 抽...原创 2018-03-22 16:58:32 · 20550 阅读 · 14 评论 -
Java学习笔记(四)--final,finally,finalize的区别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan前言 初次一看,他们长得好像啊,但是千万不要被表象迷惑了呀!他们可不是三胞胎兄弟呀!他们分别表示什么请继续往后看。final final是一个修饰符,用来修饰变量,方法和类,分别表示属性不可变,方法不可被重写,类不可被继承,特性如下:final修饰的成员...原创 2018-03-06 19:16:55 · 20579 阅读 · 7 评论 -
Java学习笔记(六)--包装类、基本类型、拆箱、装箱
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan基本类型与包装类 1.java中包括8个基本类型,与之对应的有8个包装类型,包装类是针对原生数据类型的包装 基本类型 包装类型 byte Byte...原创 2018-03-20 15:14:10 · 22794 阅读 · 15 评论 -
Java学习笔记(八)--Session和Cookie
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan由来HTTP是无状态协议,它不对之前发生过的请求和响应的状态进行管理,即无法根据之前的状态进行本次的请求处理。当登录一个系统时,因为是无状态的则登录系统后每次请求一个新的web页面不是每次都需要重新登录,就是需要在每个请求报文中附加参数来管理登录状态。无状态协议优点:不必保...原创 2018-03-26 19:15:52 · 20911 阅读 · 19 评论 -
【SSH】验证码程序实现
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【简介】 验证码是我们可以保证安全的一种方法。验证码可以用来防止恶意破解密码,和恶意刷票等,我们在日常生活中也常常需要输入验证码,有时候我们需要根据歪七扭八的汉字或者数字去完成验证,而这些操作只有真正的人类才能操作,所以可以有效的防止某些恶意的行为,在开发过程中验证码可能也是...原创 2017-02-18 22:17:21 · 26373 阅读 · 19 评论