1.初始化块

实际上初始化块是一个假象,使用javac命令编译Java类后,该Java类中的初始化块会消失——初始化块中代码会被 “还原” 到每一个构造器中,且位于构造器全部代码的前面。

2.p125-p128   自己主动装箱,自己主动拆箱不太懂



3.包装类



4.单例类

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

实例:

//提供一个静态方法。用于返回Singleton实例
//该方法能够增加自己定义控制。保证仅仅产生一个singleton对象
public static Singleton getInstance() { //假设instance为null。则表明还不曾创建Singleton对象
//假设instance不为null。则表明已经创建了Singleton对象
//将不会又一次创建新的实例
if (instance == null)
{
//创建一个Singleton对象。并将其缓存起来
instance = new Singleton ();
}
return instance;
}

5.final修饰基本类型变量和引用类型变量的差别

当使用final修饰基本类型变量时。不能对基本类型变量又一次赋值。因此基本类型变量不能被改变,但对于引用类型变量而言,它保存的不过一个引用,final只保证这个引用类型变量所引用的地址不会发生改变,即一直引用同一个对象,但这个对象全然能够发生改变。

6.可运行“宏替换”的final变量

对于一个final变量来说。无论它是类变量、实例变量,还是局部变量。仅仅要该变量满足三个条件,这个final变量就不再是一个变量,而是相当于一个直接量。

  • 使用final修饰符修饰
  • 在定义该final变量时指定了初始值
  • 该初始值能够在编译时就被确定下来
final修饰符的一个重要用途就是定义“宏变量”。当定义final变量时就为该变量指定了初始值。并且该初始值能够在编译时就确定下来,那么这个final变量本质上就是一个“宏变量”。编译器会把程序中全部用到该变量的地方直接替换成该变量的值。
Java会使用常量池来管理以前用过的字符串直接量,比如运行String a = "java";语句之后,常量池中就会缓存一个字符串“java”;假设程序再次运行String b = "java";。系统就会让b直接指向常量池中的“java”,因此a == b 就会返回true。


7.内部类
非静态内部类的子类不一定是内部类。它能够是一个外部类。但非静态内部类的子类实例一样须要保留一个引用,该引用指向其父类所在外部类的对象。也就是说,假设有一个内部类子类的对象存在,则一定存在与之相应的外部类对象。


8.effectively final











读《疯狂Java讲义》笔记总结三的更多相关文章

  1. 疯狂java讲义--笔记

    第一章.Java语言概述与开发环境 什么是软件:一系列按照特定顺序组织的计算机数据和指令的集合: 交互方式:两种 GUI(Graphical User Interface) 图像界面 .CLI (Co ...

  2. 疯狂java讲义笔记 2.3.7

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  3. 《疯狂java讲义》笔记 1-5章

    1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...

  4. 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题

    调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...

  5. 疯狂java讲义 第三版 笔记

      java7新加特性: 0B010101  二进制数 int c=0B0111_1111;   数值中使用下划线分隔 switch 支持String类型   字符串常量放在常量池 String s0 ...

  6. 读《疯狂Java讲义》笔记总结一

    最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...

  7. java8--集合(疯狂java讲义3复习笔记)

    1.集合分四类:set,map,list,queue 位于java.util包下. 集合类和数组的区别,数组可以保存基本类型的值或者是对象的引用,而集合里只能保存对象的引用. 集合类主要由两个接口派生 ...

  8. 疯狂JAVA讲义第三章之数组篇

    package test;   /** * Desription: * @author orangebook *<br/>网站:<a href="http://www.cr ...

  9. udp协议基础(转自疯狂java讲义)

    第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...

  10. 《疯狂Java讲义》(一) ---- 关于学习Java的反思

    "听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...

随机推荐

  1. Thanks for your encourage!

    将近三个月的学习,我的努力换回了代表荣誉的小黄衫,这令我很开心啊...我想是不是要写点什么来表达自己的心情呢=,=  于是就有了以下文字ahhhhhh... 学习心得: (1)学习中总会有失败和成功, ...

  2. C# TypeDescriptor获取类型转换器,实现泛型转换

    需求背景 平时的coding过程中,经常性遇到string类型转换成其他的基本类型,如 int double bool等,那我们正常的方式就是下面的方式进行类型转换 int.Parse("1 ...

  3. Docker网络基础:快速指南

    Docker网络基础:快速指南 原文连接:http://blogxinxiucan.sh1.newtouch.com/2017/07/30/Docker网络基础:快速指南/ 了解有关扩展网络功能的默认 ...

  4. Codeforces 903E Swapping Characters

    题目大意 考虑一个未知的长为 $n$($2\le n\le 5000$)由小写英文字母构成的字符串 $s$ .给出 $k$($1\le k\le 2500$,$nk\le 5000$)个字符串 $s_ ...

  5. HDU-3718 Similarity

    题目只有26个字母,所以我们新建一个二分图,v[i][j]表示字母i对应字母j时能成功匹配的个数,给这个边矩阵v求个最大匹配就是答案. #include <cstdlib> #includ ...

  6. [SDOI2010] 地精部落 (组合数学,动态规划)

    题目链接 Solution 很巧妙的 DP. 可以看这里的题解. 比我自己讲要好的多. Code #include <bits/stdc++.h> using namespace std; ...

  7. nginx日志打印请求响应时间

    log_format  timed_combined  '$remote_addr - $remote_user [$time_local] "$request" ' '$stat ...

  8. 百度网络监控实战:NetRadar横空出世(下)

    原文:https://mp.weixin.qq.com/s/CvCs-6rX8Lb5vSTSjYQaBg 转自订阅号「AIOps智能运维」,已授权运维帮转发 作者简介:运小贝,百度高级研发工程师 负责 ...

  9. 马士兵hadoop第五课:java开发Map/Reduce(转)

    马士兵hadoop第一课:虚拟机搭建和安装hadoop及启动 马士兵hadoop第二课:hdfs集群集中管理和hadoop文件操作 马士兵hadoop第三课:java开发hdfs 马士兵hadoop第 ...

  10. hdu 3625 Examining the Rooms 轮换斯特林数

    题目大意 n个房间对应n把钥匙 每个房间的钥匙随机放在某个房间内,概率相同. 有K次炸门的机会,求能进入所有房间的概率 一号门不给你炸 分析 我们设\(key_i\)为第i间房里的钥匙是哪把 视作房间 ...