先看一个例子: package com.test; public class AutoIncrement { public static void main(String[] args) { int a=7; System.out.println(++a); System.out.println(a); int b=7; System.out.println(b++); System.out.println(b); } } 结果也如预期的一样: 是不是回忆起大学老师讲的规则:自增有两种方式,分别…
概览: 简介:作用.地位.不控制并发的影响 用法:对象锁和类锁 多线程访问同步方法的7种情况 性质:可重入.不可中断 原理:加解锁原理.可重入原理.可见性原理 缺陷:效率低.不够灵活.无法预判是否成功获取到锁 如何选择Lock或Synchronized 如何提高性能.JVM如何决定哪个线程获取锁 总结 后续会有代码演示,测试环境 JDK8.IDEA 一.简介 1.作用 能够保证在==同一时刻==最多只有一个线程执行该代码,以保证并发安全的效果. 2.地位 Synchronized是Java关键字…
先看一段代码: package com.test; import java.util.Scanner; public class IntegerCache { public static void main(String[] args) { Scanner input = new Scanner(System.in); while(input.hasNextInt()){ int ii = input.nextInt(); System.out.println("===" + ii +…
先来看一个例子: package com.test; public class calculate { /** * 光速30万公里/秒 */ public static final int LIGHT_SPEED = 30 * 10000 * 1000; public static void main(String[] args) { System.out.println("月光照射到地球的时间为1秒,计算地球距离月球的距离"); int month2earth = LIGHT_SPE…
脚本语言的3大特征: 1.灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型:2.便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务3.简单:脚本语言语法比较简单,易学 另外:java6以上默认支持JavaScript Java SE6加入了对JSR223的实现, JSR223旨在定义一个统一的规范,使得java应用程序可以通过一套固定的接口定义与各个脚本引擎交互,从而达到java平台上调用各个脚本语言的目的. 接口定义在javax.script下面.…
先看一段代码: public class Test{ public static void main(String[] args){ System.)); } } public static String toNumberCase(int n){ String str = ""; switch(n){ : str = "我是0"; : str = "我是1"; : str = "我是2"; : str = "我是3&…
取余判断原则:取余用偶判断,不要用奇判断 先看一个 程序: package com.test; import java.util.Scanner; public class t1 { public static void main(String[] args) { //接收键盘输入 Scanner in = new Scanner(System.in); while(in.hasNextInt()){ int i = in.nextInt(); System.out.println(i%2==1…
先看一个例子: package com.test; public class TernaryOperator { public static void main(String[] args) { int temp = 80; String s1 = String.valueOf(temp<100?90:100); String s2 = String.valueOf(temp<100?90:100.0); System.out.println(s1); System.out.println(s…
jdk自带的JVM调优工具 jvm监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三方的分析工具.jdk自带工具一般在jdk bin目录下面,以exe的形式直接点击就可以使用,其中包含分析工具已经很强大,几乎涉及了方方面面,但是我们最常使用的只有两款:jconsole.exe和jvisualvm.exe:第三方的分析工具有很多,各自的侧重点不同,比较有代表性的:MAT(Memory Analyzer Tool).GChisto等. jconsole Jconsole(Java Moni…
[尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的String类型,从内存分配情况来解析String对象的特性. java 内存 String StringBuffer StringBuilder 一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析…