JavaDailyReports10_07
动手动脑①

1 package test_1;
2
3 public class Test {
4
5 public static void main(String[] args) {
6 // TODO 自动生成的方法存根
7 Foo obj1=new Foo();
8 Foo obj2=new Foo();
9 System.out.println(obj1==obj2);
10 }
11 }
12 class Foo{
13 int value=100;
14 }

动手动脑②:类字段的初始化顺序:
1 package test_1;
2
3 public class Test {
4
5 public static void main(String[] args) {
6 // TODO 自动生成的方法存根
7 InitializeBlockClass obj=new InitializeBlockClass();
8 System.out.println(obj.getField());
9
10 obj=new InitializeBlockClass(300);
11 System.out.println(obj.getField());
12 }
13 }
14 class InitializeBlockClass{
15
16 {
17 setField(200); //代码块定义值是200
18 }
19 private int field=100; //定义初始值是 100
20 InitializeBlockClass(int value) { //传入参数是300
21 this.setField(value);
22 }
23 InitializeBlockClass() {
24 }
25 public int getField() {
26 return field;
27 }
28 public void setField(int field) {
29 this.field = field;
30 }
31 }

1 package test_1;
2
3 public class Test {
4
5 public static void main(String[] args) {
6 // TODO 自动生成的方法存根
7 InitializeBlockClass obj=new InitializeBlockClass();
8 System.out.println(obj.getField());
9
10 obj=new InitializeBlockClass(300);
11 System.out.println(obj.getField());
12 }
13 }
14 class InitializeBlockClass{
15 private int field=100; //定义初始值是 100
16 {
17 setField(200); //代码块定义值是200
18 }
19
20 InitializeBlockClass(int value) { //传入参数是300
21 this.setField(value);
22 }
23 InitializeBlockClass() {
24 }
25 public int getField() {
26 return field;
27 }
28 public void setField(int field) {
29 this.field = field;
30 }
31 }

1 package test_1;
2
3 class Root
4 {
5 static
6 {
7 System.out.println("Root的静态初始化块");
8 }
9
10 {
11 System.out.println("Root的普通初始化块");
12 }
13
14 public Root()
15 {
16 System.out.println("Root的无参数的构造器");
17 }
18 }
19 class Mid extends Root
20 {
21 static
22 {
23 System.out.println("Mid的静态初始化块");
24 }
25 {
26 System.out.println("Mid的普通初始化块");
27 }
28 public Mid()
29 {
30 System.out.println("Mid的无参数的构造器");
31 }
32 public Mid(String msg)
33 {
34 //通过this调用同一类中重载的构造器
35 this();
36 System.out.println("Mid的带参数构造器,其参数值:" + msg);
37 }
38 }
39 class Leaf extends Mid
40 {
41 static
42 {
43 System.out.println("Leaf的静态初始化块");
44 }
45 {
46 System.out.println("Leaf的普通初始化块");
47 }
48 public Leaf()
49 {
50 //通过super调用父类中有一个字符串参数的构造器
51 super("Java初始化顺序演示");
52 System.out.println("执行Leaf的构造器");
53 }
54
55 }
56
57 public class TestStaticInitializeBlock
58 {
59 public static void main(String[] args)
60 {
61 new Leaf();
62
63
64 }
65 }
规律总结:
一个父类后继承两个子类,调用顺序为:总顺序先static代码块后普通代码块 最后构造代码块,先父类后子类,先无参构造,后带参构造!
*****************************************************
动手动脑④:

1 package test_1;
2
3 public class StaticStudy {
4 static int staticnum=1;
5 private int num;
6 public static void display() {
7 StaticStudy test=new StaticStudy();
8 System.out.println("在静态方法中输出静态变量:"+test.staticnum);
9 System.out.println("在静态方法中输出非静态变量:"+test.num);
10 }
11 public int getNum() {
12 return num;
13 }
14 public void setNum(int num) {
15 this.num = num;
16 }
17 public StaticStudy(int num) {
18 this.num = num;
19 }
20 public StaticStudy() {
21
22 }
23 public static void main(String[] args) {
24 // TODO 自动生成的方法存根
25 StaticStudy test0=new StaticStudy(100);
26 test0.display();
27 }
28
29 }

//只需要在静态变量里实例化一个本类的对象,通过这个对象取用本对象的数据成员!
动手动脑⑤:
Java中的包装类
1 package test_1;
2
3 public class StrangeIntegerBehavior
4 {
5 public static void main(String[] args)
6 {
7 Integer i1=100;
8
9 Integer j1=100;
10
11 System.out.println(i1==j1);
12
13 Integer i2=129;
14
15 Integer j2=129;
16
17 System.out.println(i2==j2);
18
19 }
20 }


-128 --- 127 范围内是相等的,超出范围一定会重新生成对象!所以地址值就会不同!
JavaDailyReports10_07的更多相关文章
随机推荐
- Spring Boot 实现看门狗功能 (调用 Shell 脚本)
需要实现看门狗功能,定时检测另外一个程序是否在运行,使用 crontab 仅可以实现检测程序是否正在运行,无法做到扩展,如:手动重启.程序升级(如果只需要实现自动升级功能可以使用 inotify)等功 ...
- python3 通过 pybind11 使用Eigen加速代码
python是很容易上手的编程语言,但是有些时候使用python编写的程序并不能保证其运行速度(例如:while 和 for),这个时候我们就需要借助c++等为我们的代码提速.下面是我使用pybind ...
- vue props默认值国际化报错
未做国际化处理 tabLabel: { type: Array, default: () => (["a", "b", "c"]) } ...
- 关于Redis分布式锁这一篇应该是讲的最好的了,先收藏起来再看!
前言 在Java并发编程中,我们通常使用到synchronized .Lock这两个线程锁,Java中的锁,只能保证对同一个JVM中的线程有效.而在分布式集群环境,这个时候我们就需要使用到分布式锁. ...
- 状压DP复习笔记
前言 复习笔记第4篇.CSP RP++. 引用部分为总结性内容. 0--P1433 吃奶酪 题目链接 luogu 题意 房间里放着 \(n\) 块奶酪,要把它们都吃掉,问至少要跑多少距离?一开始在 \ ...
- Springboot — 用更优雅的方式发HTTP请求:RestTemplate
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率. 我之前的HTTP开发是用ap ...
- Docker 安装 Redis 需要注意的地方
Docker 安装 Redis 需要注意的地方 拉取镜像 docker pull redis 可以使用redis:xxx xxx为版本号,不写默认是latest 启动容器 无配置文件无密码: dock ...
- 侧边栏js样式代码
<!-- menu html --> <div class="container"> <div class="menu-wrap optis ...
- 安卓qq视频动态名片制作器
本软件来自互联网,仅供个人参考,严禁商业用途! 非常炫酷的diy动态名片教程,B格绝对高,内含软件教程代码,包会!
- 6个JS特效教程,学完即精通
6个JS特效教程,学完即精通 JavaScript特效教程,学完你就能写任何特效.本课程将JavaScript.BOM.DOM.jQuery和Ajax课程中的各种网页特效提取出了再进行汇总.内容涵盖了 ...
