1 延迟满足

尚未进行身份认证

热爱新技术,喜欢研究原理,感受设计之美。

等级
博文 70
排名 6w+

Java 中报 ClassNotFoundException 这个异常怎么解决

在web项目中报这个错,一般有两种情况:classpath设置错误。maven依赖导入的jar发生了冲突,可以利用IDE或者插件找出冲突来,从而解决。

2019-06-06 22:21:19

idea 的一些使用心得

快捷键ctrl+alt+ttrycatch快捷键ctrl+h超级搜索ctrl+o方法视图Ctrl+E最近的文件Ctrl+Alt+O优化导入的...

2019-05-29 08:02:29

愿秋招收获心仪的 offer(日后实现了会回来还愿)

在此许愿,秋招可以进入自己喜欢的互联网公司。不论是生活上还是技术上,在找工作的过程中都学到了很多。总结出一句话,好的心态+自控力+执行力+时间管理,坚持下去,坚持个3,5年,起码实现财务自由是够了。...

2019-05-22 18:48:25

北京租房的整理(希望大家都少走点坑)

如何找个人房源zuber这个app豆瓣租房小组58同城app中的租房中的个人房源暖房直租微信小程序咸鱼(大部分是中介,个人房源比较少)以上就是可以找到个人房源信息的软件,大家在租房过程中千万不要贪图小便宜,因为这样容易被中介套路你。而且北京的中介费一般会收取你一个月的房租费,但其实这个费用可以不交。总之一句话,在租房合同签之前,你就是大爷,租房合同签了以后中介是大爷。所以...

2019-05-13 10:42:45

高版本数据库文件导入低版本 mysql 的解决方法(附带工具)

概述在数据转移的过程中,偶尔会碰到高版本数据库需要转移到低版本数据库的情况。一般情况下,低版本无法识别高版本的数据库文件,容易报错。比如:我把mysql5.5的数据库信息想转移到mysql5.0的版本上,导入sql过程中报错,我又不想把mysql5.0升级。(重装mysql太恶心了)如何解决呢使用数据库管理软件NavicatforMySQL(注意有的版本中并没...

2019-05-11 10:53:03

Java 中常说的常量池到底是什么

常量池的划分Class文件常量池运行时常量池字符串常量池1.Class文件常量池Class文件常量池指的是编译生成的class字节码文件,其结构中有一项是常量池(ConstantPoolTable),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。什么是字面量和符号引用?字面量是指字符串字面量和声明为final...

2019-05-11 10:04:51

Linux 常用命令整理

查看某个进行的状态ps-ef|grepexecFileName查看某个文件catfilePath创建文件夹mkdir/fileName复制文件cp/sourcePath/destPath创建文件touch查看当前所在目录pwd创建软连接???ln-s/fileName/xxx删除指定文件。rm-f...

2019-05-07 09:26:02

编程思想论

思维多元化我们平时大部分的后台开发人员都是在做CRUD,用一些别人封装好的易用的框架去写业务代码。有的人日复一日反复在重复这样的工作,有的人却在工作中思考。我今天想和大家说的就是,要把眼光、格局放的大一些。比如:你虽然是个后台开发人员,但是不要沉浸在技术当中,要多去了解一下业务背景、软件开发的整个流程、项目管理等这些软技能。当你接触的东西多了以后,思维就比较发散,不会局限于一个维度去看待一个问...

2019-05-03 09:08:44

JDK 1.6 synchronized 的锁优化

背景在JDK1.6中对锁的实现引入了大量的优化。目的减少锁操作的开销。JDK1.6以后的锁优化在看下面的内容之间,希望大家对MarkWord有个大体的理解。Java中一个对象在堆中的内存结构是这样的:MarkWord是这样的:1.适应性自旋锁自旋锁的思想:让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进...

2019-04-20 21:49:53

Minor GC 和新生代对象的晋升

背景Java中的对象优先在Eden分配,当Eden区满时会触发MinorGC。新生代对象晋升到老年代有多种情况触发MinorGC时,Eden区和一个Survivor区中存活的对象大于另一个Survivor区的大小,则通过分配担保机制进入老年代。若对象太大,新生代无法容纳这个对象,直接进入老年代。长期存活的对象将进入老年代。对象的年龄达到MaxTenur...

2019-02-27 10:42:35

意向锁到底是什么

产生原因解决表锁与之前可能存在的行锁冲突,避免为了判断表是否存在行锁而去扫描全表的系统消耗。作用一种快速判断表锁与之前可能存在的行锁冲突的机制。(数据库会帮我们自动加)行锁在加锁前要先加意向锁。意向锁是一种表锁。例子分析事务A锁住了表中的一行,让这一行只能读,不能写。之后,事务B申请整个表的写锁。如果事务B申请成功,那么理论上它就能修改表中的任意一行,这与A持有...

2019-01-21 23:24:06

深拷贝和浅拷贝

概述Java集合中提供的拷贝构造函数只支持浅拷贝而不是深拷贝,这是因为集合中的拷贝构造函数是通过引用的复制来达到浅拷贝的。这意味着存储在原有集合和克隆集合中的对象会保持一致(指向同一内存地址)。当然如果集合中的对象是不可变对象,那这是可以的。这也是为什么String设计为不可变类之一的原因。String对象在字符串常量池中更新一个并不会影响到其他对象,便于缓存字符串。publicfi...

2019-01-20 21:58:49

Java 中字节流的 read() 方法为什么返回值不是 byte 类型而是 int 类型?

原因因为不管是网络还是磁盘,数据最终都是以二进制字节流的形式传输,也就是一个字节一个字节。所以就存在11111111,如果用Java(只存在有符号数)中的byte接收的话,11111111就代表-1,就会导致流还没有读取完就结束了读取。通过用int接收从操作系统中读取过来的字节流,在高24位都补零,这样就不会存在读取的数据为-1的情况了,所以我们就可以用-1...

2019-01-19 11:41:21

Java 中的链表分析

容器我们平时都经常遇到容器这个词,那么Java集合中的容器指的是什么呢?**容器就是利用某种特定的数据结构来存储数据的。**在研究Java集合源码中时,我发现理解容器的关键要素很重要,因为这些关键元素在各个容器之间是通用的。关键要素:物理结构数据结构分物理结构、逻辑结构。物理结构就是数据在计算机中是怎么存储的,有数组和链表两种方式。数组是内存中一块连续的存储空间,所以可以随机...

2019-01-17 09:02:24

装饰模式

职责动态的为一个对象增加新的功能装饰模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。代码示例//抽象构建组件publicinterfaceICar{voidmove();}//具体构建组件classCarimplementsICar{@Overri...

2018-10-29 16:56:15

内部类原理剖析

为什么匿名内部类不能使用方法的局部变量,可以使用方法的final常量?不加final局部变量用final修饰本质在方法执行的时候是借助栈来完成的,JVM在执行我们的方法时,会把执行的方法作为一个栈帧压入栈。我们方法里的局部变量被存储在执行方法所对应的栈帧的局部变量表中。这就意味着我们局部变量的生命周期是在所执行的方法还留在栈中,一旦这个方法弹出栈,局部变量也对应着被回收(...

2018-10-29 12:03:49

深入理解 Java 泛型

核心思想在泛型擦除时,如果泛型参数没有边界,那么就使用Object代替。publicclassDemo3{publicstaticvoidmain(Stringargs[]){fun(newInteger[]{1,2,3});}publicstatic<T>voidfun(T[]param){/...

2018-10-28 11:32:59

Comparable 和 Comparator 的区别

Comparable同一个类的不同对象之间进行比较,通过重写compareTo()指定比较的规则。缺点只能指定一种排序规则Comparator类似于一种策略模式,将排序规则和业务类利用一个独立的接口来解耦。因此可以有多种排序规则。通过重写compare()指定比较的规则。优点灵活,解耦...

2018-10-27 12:05:33

jdk 源码精髓(持续更新)

巧用三目运算和逻辑运算符String类里的两个方法。(大家对比着看,体验一下如何巧用三目运算符)publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;}if(anObjectinstanceofString){...

2018-10-24 18:14:38

Java 中的锁优化

jdk1.6开始JVM对synchronized关键字做了大量的锁优化。自旋锁通过CAS来自旋直到获取锁,占用CPU资源,但不会进行线程状态的切换。适合用于线程竞争不激烈,短任务的场景。线程竞争激烈的情况下,自旋会占有CPU,从而使系统的吞吐量降低。锁消除JIT编译器经过逃逸分析后发现并没有线程安全问题,就会做锁消除。锁粗化当JIT编译器发现一系列连续的操...

2018-10-18 21:40:22
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。