
Java
文章平均质量分 62
mada26
这个作者很懒,什么都没留下…
展开
-
通过Jackson序列化反序列化解决对象拷贝问题
通过json序列化、反序列化解决一个对象拷贝的问题原创 2022-08-11 09:30:45 · 490 阅读 · 1 评论 -
HashSet底层结构
HashSet底层结构原创 2022-04-25 14:43:25 · 1001 阅读 · 0 评论 -
基于Protostuff的序列化与反序列化
一种protobuf序列化方式,不需要编写proto文件Maven依赖 <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.7</version>原创 2021-12-09 15:46:45 · 1222 阅读 · 0 评论 -
Java多线程&线程安全&并发包
1:synchronized(保证原子性和可见性)1.同步锁。多线程同时访问时,同一时刻只能有一个线程能够访问使synchronized修饰的代码块或方法。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象修饰一个类,其作用的范围是sync原创 2020-05-26 10:21:30 · 314 阅读 · 0 评论 -
断点启动远程tomcat
1:断点启动远程tomcat 使用./catalina.sh jpda start 代替原本的 ./startup.sh2:启动tomcat并查看日志 ./startup.sh | tailf …/logs/catalina.2018-02-09.out,如图所示:原创 2020-04-14 14:37:29 · 353 阅读 · 0 评论 -
Linux下安装jdk1.8&查看jdk启动版本
1.Linux下安装jdk1.8,参考:jdk1.8安装(windows和Linux(root和worker用户))2:直接使用java --version可能得到的jdk版本是1.7,但实际上使用的jdk版本可能不一定是1.7,具体查看方法如下。ps -ef|grep java 查看java进程,进程中有jdk版本信息 cd /proc/919/ ll | grep exe 可...原创 2018-12-28 14:58:15 · 1348 阅读 · 0 评论 -
同步异步&阻塞非阻塞
同步异步(关注的是消息通信机制)同步:调用者发出一个"调用",没得到结果之前,该"调用"不返回;一旦该"调用"返回,就得到结果。调用者主动等待"调用"的结果。异步:调用者发出"调用"后,就立即返回,没有返回结果。当一个异步过程"调用"发出后,调用者不会立刻得到结果,而是在"调用"发出以后,由被调用者通过状态,通知来通知调用者,或者通过回调函数来处理这个"调用"。类似的框架有Node.js等原创 2017-07-04 11:16:31 · 320 阅读 · 0 评论 -
servlet获取http接口获取请求体内容(get&post)
get请求方式: Long houseId = Long.parseLong(request.getParameter(&quot;houseId&quot;));post请求方式 ServletInputStream servletInputStream = request.getInputStream(); StringBuilder content = new ...原创 2019-03-11 11:19:01 · 1967 阅读 · 0 评论 -
jdk1.8安装:windows和Linux(root和worker用户)
windows下安装jdk1.8新建环境变量JAVA_HOME、CLASSPATHJAVA_HOME *C:\Program Files\Java\jdk1.8.0_102* JAVA_HOME是配置JDK的目录CLASSPATH .;%JAVA_HOME%\lib; CLASSPATH指定到哪里去找运行时需要的类代码(字节码)编辑环境变量PATHPATH %......原创 2019-04-26 14:41:19 · 825 阅读 · 0 评论 -
tomcat启动失败之Http11AprProtocol
1问题:tomcat启动失败2解决方案:修改server.xml中的Http11AprProtocol为Http11NioProtocol,重启原创 2019-04-25 10:55:54 · 3396 阅读 · 0 评论 -
序列化时包名处理
前提:同一个实体,在两个项目中使用使用fastjson进行序列化反序列化,两个实体的包名无需保持一致:fastjson序列化反序列化是根据**@JSONField注解**中的name等字段进行处理的。使用io流进行序列化反序列化,两个实体的包名必须保持一致:否则反序列化时根据实体类的全路径找不到对应的实体类会反序列化失败。...原创 2019-04-30 17:21:35 · 1526 阅读 · 0 评论 -
Intellij IDEA中使用Protobuf
1.安装Protobuf Support插件2.将.proto文件转成Java类一般的做法,是执行protoc命令,依次将.proto文件转成Java类:protoc.exe -I=d:/tmp --java_out=d:/tmp d:/tmp/monitor_data.proto2.使用gRPC官方推荐的一种更优雅的使用姿势,可以通过maven轻松搞定,具体步骤:pom.xml...原创 2019-10-09 11:09:24 · 929 阅读 · 0 评论 -
使用代理模式扩展logback,实现自定义的日志记录功能
1:jdk动态代理:代理类和目标类实现相同的接口。cglib代理:代理类是目标类的子类(因此cglib要代理的类不可以是final类,要代理的方法不可以是final方法)。2:cglib代理本质上是通过动态的生成一个子类,去覆盖所要代理类中不是final的方法,并设置好callback回调,则原有类的每个方法调用都会转变成调用用户定义的拦截方法(interceptor)。3:使用代理模...原创 2017-04-26 13:26:39 · 3400 阅读 · 0 评论 -
SpringMVC小结
JSON数据格式在HTML页面中、接口调用中使用比较多,它的格式比较简单,解析相对方便,所以要进行JSON交互。SpringMVC进行JSON交互:1:客户端请求发送的数据可分为两种:JSON字符串和key/value数据。 2:JSON字符串需要指定contentType=application/json,key/value数据contentType=application/x-原创 2017-04-25 21:57:17 · 252 阅读 · 0 评论 -
java程序初始化的顺序
Java 程序初始化的顺序是怎样的? 在 Java 语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化, 只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象。 Java 程序的初始化一般遵循以下三个原则(以下三原则优先级依次递减): (1)静态对象(变量)优先于非静态对象(变量)初始化, 其中,静态对象(原创 2016-04-05 20:12:06 · 503 阅读 · 0 评论 -
this和Super关键字
super()、super.和 this()、this. 1–this:在运行期间,哪个对象在调用this所在的方法,this就代表哪个对象,隐含绑定到当前“这个对象”。 2–super():调用父类无参构造器,一定在子类构造器第一行使用!如果没有则是默认存在super()的! 这是Java默认添加的super()。3– super.是访问父类原创 2016-04-05 20:24:55 · 380 阅读 · 0 评论 -
JSON数据交互(SpringMVC进行json交互)
最近在使用json数据,现将这几天的使用心得整理如下: 一:JSON定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交原创 2015-10-20 15:51:02 · 654 阅读 · 0 评论 -
Java中super的几种用法并与this的区别
子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println(“Base”); } }public class Checket extends Base { Checket() { super();//调用父类的构造方法,一定要放在方法的首个语句原创 2016-04-16 14:07:10 · 422 阅读 · 0 评论 -
java中的深拷贝和浅拷贝
对象拷贝(Object Copy)就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去。在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用对象的部分或全部数据。Java中有三种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)、延迟拷贝(Lazy Copy)。1:浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精原创 2017-02-26 21:03:45 · 457 阅读 · 0 评论 -
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一原创 2016-06-21 21:22:07 · 2186 阅读 · 2 评论 -
Java多线程学习
林炳文Evankaka原创作品。出处http://blog.youkuaiyun.com/evankaka目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程名词解释八线程同步九线程数据传递 本文主要讲转载 2016-04-24 09:44:20 · 352 阅读 · 0 评论