Java记录系列
Java相关文章
安逸的程序猿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java记录】Java性能调优,使用Java VisualVM多线程分析
一、VisualVM介绍 VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。 VisualVM 提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序的详细信息。VisualVM 对 Java Developme原创 2021-02-24 17:20:20 · 1035 阅读 · 0 评论 -
【Java记录系列目录】
1.【Java记录】JAVA(JDK)动态代理和Cglib代理的实现原理 2.【Java记录】快速理解什么是Happens-Before原创 2021-02-01 09:43:12 · 110 阅读 · 0 评论 -
【Java记录系列】java做的基于vlcj的视频播放器 不能播放视频 黑屏问题
java实战原创 2016-02-25 15:36:48 · 1610 阅读 · 0 评论 -
解决 cc1.exe: sorry, unimplemented: 64-bit mode
项目场景: 使用kafka-client-go时,编译报错 cc1.exe: sorry, unimplemented: 64-bit mode MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。 MinGW包括: 一套集成编译器,包括C、C++、ADA语言.原创 2020-09-07 11:08:00 · 1309 阅读 · 0 评论 -
【Java记录】JAVA(JDK)动态代理和Cglib代理的实现原理
熟悉Spring AOP的一定知道,AOP的实现是基于java动态代理和cglib代理两种方法实现的。 (看源码会知道,在进入准备生成代理对象阶段会有一个if条件判断,如下) 要代理对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 要代理对象实现了接口,可以强制使用CGLIB实现AOP,使用注解@EnableAspectJAutoProxy(proxyTargetClass = true) 要代理对象没有实现了接口,必须采用CGLIB库,spring会自动使用CGLIB 比如: .原创 2020-08-19 20:30:57 · 723 阅读 · 0 评论 -
【java记录】java使用Google Guava(中文版)
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 项目中使用方法,Maven引用 <dependenc原创 2020-08-19 11:01:08 · 1383 阅读 · 0 评论 -
【Java记录】快速理解什么是Happens-Before
int a = 1; int b = 2; 当线程1修改 a = 3; b = 4; 并发的时候,线程2调用a,b 可能出现a=1;b=4; 这里就出现很奇怪现象 一些同学可能会问怎么可能 b=4语句会先于 a=3 执行? 问题的出现就是在于两点 第一,写入时的重排序。 第二,读入内存时的重排序。 解释: (Java编译器的重排序(Reording)操作) 重排序(Reordering)是JVM针对现代CPU的一种优化,Reordering后的指令会在性能上有很大...原创 2020-08-18 22:41:11 · 196 阅读 · 0 评论 -
关于类加载顺序的六道题,你都会吗?
不多bb,先上结论: 1、一个类会被类加载去预加载,被加载的类,不一定被初始化。 2、类只有在首次被使用的时候,才会被初始化,也就是类只会被初始化一次。 下面是六道题目,思考一下输出结果应该是什么? Q1 结果是: MyParent1 static block hello world 分析:在这里MyChild1和MyParent1都是被加载了,但是只有MyParent1...原创 2020-03-29 14:24:21 · 346 阅读 · 0 评论 -
Null return value from advice does not match primitive return type for
报错信息 报错原因:我是代码里用了异步线程,AOP做了一层切面处理,底层是通过jdk动态代理实现。 不管是cglib代理还是jdk代理,你的返回值必须是包装类,如下图我返回的是基本类型,所以就会报错。 把int 改成 Integer就可以解决问题了。 这时候有人可能不理解。为什么一定要Integer不能用Int类型 查了一下,如果代理的方法返回值类型为void,就return nul...原创 2019-11-07 14:15:43 · 14118 阅读 · 4 评论 -
Google Java Style 中文版
一、介绍 本文档为Google Java编程规范的完整定义。依照此规范编写的Java源码文件可以被称为Google Style。 和其他编程规范指南一样,规范不仅包括了代码的结构美学,也包括了其他一些业界约定俗成的公约和普遍采用的标准。本文档中的规范基本都是业界已经达成共识的标准,我们尽量避免去定义那些还存在争议的地方。 1.1 术语说明 本文档除非特殊说明,否则: a、class...转载 2019-11-04 16:48:35 · 318 阅读 · 0 评论 -
Tomcat启动报错Address already in use: JVM_Bind
进入cmd,输入 netstat -aon|findstr "8080",找到占用8080端口的进程杀掉。具体怎么操作,应该网上都有。注意一点的是,在spring中两个项目都用到tomcat,pom文件里修改了不同的端口号,要看错误信息报的端口,比如有时候是8081端口,然后你还去找8080....原创 2018-04-13 08:50:01 · 449 阅读 · 0 评论 -
Invalid character found in method name. HTTP method names must be tokens|the HTTP protoco
把Https改成Http!!! 把Https改成Http!!! 把Https改成Http!!!原创 2019-09-24 09:13:38 · 161 阅读 · 0 评论 -
Idea错误: 找不到或无法加载主类 com.Main
一个简单的Hello World 竟然报错。 很多方法,网上一搜一大堆,如果还是不能解决,不妨试一下我这个办法。 常规操作,新建java项目。 第二步,这里可选可不选,随意。 重点来了,就是这一步。 假设新建个test项目。 这里的路径,有两个\\,这是不对的。一定要删掉一个。 要改成下面这样子 然后Finish。。 然后右键,运行。。 大功告成!! ...原创 2019-03-28 18:43:24 · 8487 阅读 · 1 评论 -
@RequestBody接受参数报415(媒体类型不匹配)错误
1.简介 @RequestBody 作用: 1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; 2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。 使用时机: 1) GET、POST方式提时, 根据request ...转载 2019-01-31 13:32:27 · 4574 阅读 · 2 评论 -
SpringBoot模块间引用,循环注入报错,s there an unresolvable circular reference?
当你A模块可以正常运行,B模块也可以正常运行。 A模块的pom文件中引用B模块的时候报错如下 Requested bean is currently in creation: Is there an unresolvable circular reference? 这时候你只需要 注释掉B模块中带有@Autowired的bean,一个一个注释排查,最后你就会发现问题的根源。 我当时是因为S...原创 2018-12-13 15:05:54 · 3615 阅读 · 0 评论 -
IDEA中maven项目打包报错:Dependency could not found 。
解决办法一:更新本地仓库。File->Setting->Maven->Repositories->Update(选择本地仓库的路径)。解决办法二:查看pom文件中的依赖,如果依赖的是我们自己写的,要把之前的项目打开进行打包一次。解决办法三:注意version的版本号1.0.0或者是1.0.1.这个一定要看仔细了,很多找不到错误原因的,都是因为这里出错。...原创 2018-05-11 09:45:21 · 5038 阅读 · 0 评论
分享