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 · 861 阅读 · 0 评论 -
【Java记录系列目录】
1.【Java记录】JAVA(JDK)动态代理和Cglib代理的实现原理 2.【Java记录】快速理解什么是Happens-Before原创 2021-02-01 09:43:12 · 80 阅读 · 0 评论 -
【Java记录系列】java做的基于vlcj的视频播放器 不能播放视频 黑屏问题
java实战原创 2016-02-25 15:36:48 · 1497 阅读 · 0 评论 -
解决 cc1.exe: sorry, unimplemented: 64-bit mode
项目场景:使用kafka-client-go时,编译报错cc1.exe: sorry, unimplemented: 64-bit modeMinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便。MinGW提供了一套完整的开源编译工具集,以适合Windows平台应用开发,且不依赖任何第三方C运行时库。MinGW包括:一套集成编译器,包括C、C++、ADA语言.原创 2020-09-07 11:08:00 · 1080 阅读 · 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 · 638 阅读 · 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 · 1281 阅读 · 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 · 141 阅读 · 0 评论 -
关于类加载顺序的六道题,你都会吗?
不多bb,先上结论:1、一个类会被类加载去预加载,被加载的类,不一定被初始化。2、类只有在首次被使用的时候,才会被初始化,也就是类只会被初始化一次。下面是六道题目,思考一下输出结果应该是什么?Q1结果是:MyParent1 static blockhello world分析:在这里MyChild1和MyParent1都是被加载了,但是只有MyParent1...原创 2020-03-29 14:24:21 · 277 阅读 · 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 · 13610 阅读 · 4 评论 -
Google Java Style 中文版
一、介绍本文档为Google Java编程规范的完整定义。依照此规范编写的Java源码文件可以被称为Google Style。和其他编程规范指南一样,规范不仅包括了代码的结构美学,也包括了其他一些业界约定俗成的公约和普遍采用的标准。本文档中的规范基本都是业界已经达成共识的标准,我们尽量避免去定义那些还存在争议的地方。1.1 术语说明本文档除非特殊说明,否则:a、class...转载 2019-11-04 16:48:35 · 224 阅读 · 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 · 109 阅读 · 0 评论 -
Idea错误: 找不到或无法加载主类 com.Main
一个简单的Hello World 竟然报错。很多方法,网上一搜一大堆,如果还是不能解决,不妨试一下我这个办法。常规操作,新建java项目。第二步,这里可选可不选,随意。重点来了,就是这一步。假设新建个test项目。这里的路径,有两个\\,这是不对的。一定要删掉一个。要改成下面这样子然后Finish。。然后右键,运行。。大功告成!!...原创 2019-03-28 18:43:24 · 8348 阅读 · 1 评论 -
@RequestBody接受参数报415(媒体类型不匹配)错误
1.简介@RequestBody作用: 1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;2) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。使用时机:1) GET、POST方式提时, 根据request ...转载 2019-01-31 13:32:27 · 4451 阅读 · 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 · 3500 阅读 · 0 评论 -
Idea 破解激活 2018 (重装后还是不能激活)
关于idea激活网上文章一大把,但是我找了好久好久都没有能够破解我本地的idea,我都重装了4-5次了。终于在最后一次让我发现了问题。http://idea.lanyus.com/这是个很牛逼的网站 能解决百分90的问题了。但有时候,尝尽了所有的办法都没能激活。你们的问题可能和我经历的类似。问题就在于:当你卸载软件的时候要勾选清楚历史数据,当你在重装Idea软件的时候不要勾...原创 2018-10-29 11:46:02 · 1308 阅读 · 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 · 4925 阅读 · 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 · 377 阅读 · 0 评论