java中锁的优化 -- JVM对synchronized的优化

1)锁消除

概念:JVM在JIT编译(即时编译)时,通过对运行上下文的扫描,去除掉那些不可能发生共享资源竞争的锁,从而节省了线程请求这些锁的时间。

举例
StringBuffer的append方法是一个同步方法,如果StringBuffer类型的变量是一个局部变量,则该变量就不会被其它线程所使用,即对局部变量的操作是不会发生线程不安全的问题。
在这种情景下,JVM会在JIT编译时自动将append方法上的锁去掉。

2)锁粗化

概念:将多个连续的加锁、解锁操作连接在一起,扩展成一个范围更大的锁,即将加锁的粒度放大。

举例:在for循环里的加锁/解锁操作,一般需要放到for循环外。

3)使用偏向锁和轻量级锁

说明:

查看更多

35条工作相关建议

1、不要把同事当朋友,要当盟友。
2、不要和同事说过多自己的隐私。
3、公司组织的比赛一定要参加!一定要参加!一定要参加!
4、保持微笑,不要喜怒无常。
5、投资比工作重要,不学习理财投资不买房的若干年后都后悔了。
6、尽量别得罪人,三十年河东三十年河西
7、不要瞧不起你领导,他能是你的领导,一定有你能学习的地方。
8、你可以有理想,但是时刻记住你的理想跟别人没啥关系。
9、不要相信公司的奉献精神,他们不想要你的时候可快了。
11、偷奸耍滑可以耍了的一时,但是总要露馅。
12、什么30天教你做达人,一个月教你赚100万的攻略都是骗人的,厚积薄发才是真理
13、学习是为你自己。人与人之间的差距是逐步拉开的。
14、大部分的工作只看结果,不看过程。很多事情努力了没做到和没做是一样的。
15、不要浪费时间在不值得浪费的人身上,自己的时间很宝贵。
16、学会站在老板或者公司的角度去思考问题。格局很重要。
17、在成人的社交礼仪里,没有爽快的答应就是拒绝。
18、抱怨只会显得一个人特别无能。
19、不要矫情,除非你是牛人,否则的话,永远提醒自己,人才市场有成千上万的人随时可以取代你顶替这个职位。
20、加班这种事情不可避免,忍不了就辞职,走不了就忍着!
21、无论多么信任的人,别过多袒露你的过去。为你自己好。
22、尽量不要向同事借钱,一般人家都会很反感,除非你们成为了真正的朋友。
23、不要为了工作牺牲身体和家庭。
24、闷不吭声地埋头苦干,并不一定能够给你带来想要的认可。要学会向领导、上司汇报工作进度。
25、低调做人,高调做事。
26、老板经营的是他的事业,你经营的是你的人生,所以混不得。
27、不要放弃每一个可以请教的机会,不论这个人你是否喜欢,职位是否比你高。
28、觉得是垃圾社交,不想参加就不要去,好好把握下班后自由的时间,别为了迎合别人浪费自己时间。
29、画饼的领导千千万,谁当领导不画饼?但画了饼连糖都不给吃的公司趁早走,不要回头。
30、不要夸夸而谈,这只会让人发现你的浅薄,对于不懂得事情,要懂得闭上嘴巴。
31、一定要去大城市,那里才有更多出路和机会。
32、我们年轻的时候是得吃苦,但是我们不随便吃苦。
33、不要太安逸,现在哪里还有什么稳定工作。
34、和公司谈钱时,少讲感情,尽量不讲,拿能力和业绩说话。
35、不管你这个工作做的有多差,都不要否定自己。你一定要相信,你还是很优秀。

撩妹

男票需做到

1、记得你的生日;

2、手机保持畅通让你能够联系得到他;

3、在乎你穿的暖不暖,有没有按时吃饭;

4、和他微信聊天时,态度积极,不会敷衍了事或总是隔很久才回复;

5、对你大方从不吝啬;

查看更多

有哪些你追了很多女生才明白的道理?

1、你对对方好,不要认为对方一定要以同样的方式对你。

(你的付出得不到回应是正常的,要放平心态,投资也不都是赚的,理性看待,因为你赢一次就够了)

2、不要因为对方的一句话,或者没回你信息患得患失。

不要脑补过多的信息,她不回你就等着别在联系了,或者可以隔天继续联系

3、不要强制社交,二人之间关系是一步一步升级来的,开始不要说越级的话,以及越过你们现有关系的关心。

查看更多

jvm内存结构

jvm比较重要的内存区域
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法出口等信息。当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果方法中调用了其他方法,则继续在栈顶创建新的栈桢。
除了以上四个内存区域之外,jvm中的运行时内存区域还包括本地方法栈程序计数器

1)堆

所有通过new创建的对象的内存都在堆中分配,堆的大小可以通过-Xmx和-Xms来控制。
堆被划分为新生代旧生代,新生代又被进一步划分为EdenSurvivor区,最后Survivor由From Space和To Space组成

新生代。新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活的对象转移到Survivor中,
新生代大小可以由-Xmn来控制,也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例

旧生代。在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象。

查看更多

成年人高情商的20个表现

成年人高情商的20个表现

1.见到女同事,多夸漂亮准没错。
2.别人自嘲,千万不要附和。
3.同事犯错,最好私下里提醒一下。
4.办公室同事说话没有人接,你接一下,对方会感激。。
5.办公室分享食品,一定是见者有份。
6.没有人喜欢被批评,实在要批评,先肯定再批评。
7.不在背后说人坏话。
8.不要在经济上贪别人便宜。
9.同事不要闹得太僵,再不喜欢面上也要过的去。
10.不要为无意义的话题争论到伤了和气。。
11.请人帮忙,别人没有直接答应就是拒绝。
12、不说别人的缺点。没有人喜欢别人说自己的缺点,哪怕他再不堪。
13、不会交浅言深,认识几天就什么都说,日久见人心。
14、拒绝别人越干脆,越不会得罪人。
15、能用钱解决的事,就别用人情来解决,因为人情难还。
16、答应别人的事,不管是否能做到,一定有回音。
17、不要四处炫耀,真希望你好的人不多。
18、不要总是试图证明自己是对的,自己多博学,只会招人反感。

linux压缩与解压

unzip解压

1
2
# 解压window中压缩的文件,不会文件名包含中文乱码
unzip -O CP936 xxx.zip

tar 命令

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

查看更多