Java很神秘,有一层纸没有被捅破的话真的有很多东西貌似是解释不通,仔细探究之后就真相大白了。

这里收集几个典型的案例。

(1)字符串的那些事

public class StringTest {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubString a1 = "a"+1;String b1 = "a1";String c1 = new String("a1");String d1 = "a";String i1 = "1";String x1 = d1+i1;System.out.println(a1=="a" + "1");System.out.println(a1=="a" + i1);System.out.println(a1==x1);System.out.println(a1==(d1+i1));System.out.println(a1==b1);System.out.println(a1==c1);System.out.println(a1==(d1+1));System.out.println(c1==(d1+1));System.out.println(a1==(d1+"1"));System.out.println(b1==(d1+"1").intern());}
}

执行结果:

true
false
false
false
true
false
false
false
false
true

(2)类加载与实例初始化

public class Parent {static {pA = 2;System.out.println("Parent static .");}static int pA = 1;{p = 2;System.out.println("Parent block .");}int p = 1;public Parent() {System.out.println("Parent .");}
}
public class Sub extends Parent {static {pB = 2;System.out.println("Sub static .");}static int pB = 1;private int b = pB;{b = 20;System.out.println("Sub block 1.");}public Sub() {System.out.println("Sub .");}{b = 10;System.out.println("Sub block 2.");}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(new Sub().b);System.out.println("-----1 finish---------------");System.out.println(new Parent().p);System.out.println("-----2 finish---------------");System.out.println(new Parent().pA);}
}

执行结果:

Parent static .
Sub static .
Parent block .
Parent .
Sub block 1.
Sub block 2.
Sub .
10
-----1 finish---------------
Parent block .
Parent .
1
-----2 finish---------------
Parent block .
Parent .
1
(3)类型转换

 public static void main(String[] args) {// TODO Auto-generated method stubint x=1;System.out.println((x>1)?1.1:1);}

执行结果:

1.0

(4)类加载

public class ClassLoadTest {private int[] args = new int[this.size];private int size =2;/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubClassLoadTest ct = new ClassLoadTest();System.out.println(ct.args.length);}
}

执行结果:

0

(5)基本类型转换

float f = 1.2;
double d = 2.3d;
double d1=2.3D;
double d2=2.3E10;
int i = 0xFF;
int i1=025;
Integer iObj =1;
byte b =128;
char c=17c;
byte b =1;b=b+1;
byte b =1;b+=1;

错误的表达式:

float f = 1.2;

byte b=128

char c=17c;

byte b=1;b=b+1;

(6)switch的条件判定

 public static void main(String[] args) {int i=1;switch (i) {case 1:System.out.println("1");case 2:System.out.println("2");break;case 3:System.out.println("3");default:System.out.println("default");}}

输出结果:

1
2

最新文章

  1. [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之高级配置
  2. java线程方法_Java线程的三种方式
  3. 2.3.1 为超参数选择合适的范围
  4. Linux IP 配置
  5. excel vba编程代码大全_实战VBA代码一键提取EXCEL中的所有公式!
  6. JS JAVASCRIPT 判断两个日期相隔多少天
  7. python copy与deepcopy (拷贝与深拷贝)
  8. 使用jpa控制器层如何编写_用错误的方式编写Kubernetes控制器仍然有用
  9. Google地球查看香港地形
  10. 消息服务器mq集群出现假死,排查tomcat项目假死原因的简单方法
  11. 携程android app插件化
  12. C++ eof()函数相关应用技巧分享
  13. 信号处理:频域转时域
  14. windows系统C盘扩容详解
  15. 快进来看程序员风格的修真小说!
  16. CH37X 文件管理芯片使用及移植指南
  17. 点击按钮打开新页面(携带参数)
  18. 互联网日报 | 苹果10月14日再开发布会;消息称B站明年赴港二次上市;我国电子社保卡申领超2亿张...
  19. HDU 2209 C - 翻纸牌游戏
  20. 关于tomcat能收到请求,但总是返回404的问题

热门文章

  1. mc服务器使用腾讯云轻量应用服务器可以吗?
  2. python kazoo模块的使用
  3. 必读:2022年被引用最多的100篇人工智能论文
  4. 宅米技术推动应用架构与人员组织架构发展
  5. 学习笔记:北极星指标OMTM
  6. js正则-筛选中文,英文,数字
  7. python查微信好友是否删除自己_看看python怎么知道谁把你微信拉黑了
  8. 简短的超市管理c语言程序设计,C语言程序设计超市管理系统1.doc
  9. 优秀C/C++源代码网站
  10. 机器学习与Tensorflow(6)——LSTM的Tensorflow实现、Tensorboard简单实现、CNN应用