它是线程安全的,可以被多个线程并发访问;
⌕ 搜索项目、工具、技术栈...Ctrl K

28总笔记
17划线原文
8个人想法
82%阅读进度
算法心得:高效算法的奥秘
1.位翻转Integer有两个静态方法,可以按位进行翻转: public static int reverse(int i) public static int reverseBytes(int i)位翻转就是将int当作二进制,左边的位与右边的位进行互换,reverse是按位进行互换,
Comparable
Float f1 = 0.01f; Float f2 = 0.1f*0.1f; System.out.println(f1.equals(f2)); System.out.println(Float.floatToIntBits(f1));
❑ 类变量(静态变量);❑ 类初始化代码;❑ 类方法(静态方法);❑ 实例变量;❑ 实例初始化代码;❑ 实例方法;❑ 父类信息引用。2)类初始化代码包括:❑ 定义静态变量时的赋值语句;❑ 静态初始化代码块。3)实例初始化代码包括:❑ 定义实例变量时的赋值语句;❑ 实例初始化代码块;❑ 构造方法。
子类可以重写父类非private的方法,当调用的时候,会动态绑定,执行子类的方法。那实例变量、静态方法和静态变量呢?
构造方法;❑ 重名与静态绑定;❑ 重载和重写;❑ 父子类型转换;❑ 继承访问权限(protected);❑ 可见性重写;❑ 防止继承(final)。
这个统一的概念是流,流有输入流和输出流之分。输入流就是可以从中获取数据,输入流的实际提供者可以是键盘、文件、网络等;输出流就是可以向其中写入数据,输出流的实际目的地可以是显示终端、文件、网络等。
按位与&:两位都为1才为1。❑ 按位或|:只要有一位为1,就为1。❑ 按位取反~:1变为0,0变为1。❑ 按位异或^:相异为真,相同为假
UTF-16使用两个或4个字节表示一个字符
表示,例如: int a = 25; System.out.println(Integer.toBinaryString(a)); //二进制 System.out.println(Integer.toHexString(a)); //十六进制 System.out.println(Long.toBinaryString(a)); //二进制 System.out.println(Long.toHexString(a)); //十六进制
内部类与包含它的外部类有比较密切的关系,而与其他类关系不大,定义在类内部,可以实现对外部完全隐藏,可以有更好的封装性,代码实现上也往往更为简洁。
继承的好处是复用代码,只重写需要的部分即可,需要编写的代码比较少,容易实现。不过,如果这个具体类已经有父类了,那就只能选择实现接口了。
Map有键和值的概念。一个键映射到一个值,Map按照键存储和访问值,键不能重复,即一个键只会存储一份,给同一个键重复设值会覆盖原来的值。
,泛型就是类型参数化,处理的数据类型不是固定的,而是可以作为参数传入。
接口定义能力,而抽象类提供默认实现,方便子类实现接口。
这是为什么呢?这个章节带着疑问去阅读。
关联划线:泛型类型参数到底是什么呢?为什么一定要定义类型参数呢?定义普通类,直接使用Object不就行了吗?
划重点,虽然不会考
关联划线:Float f1 = 0.01f; Float f2 = 0.1f*0.1f; System.out.println(f1.equals(f2)); System.out.println(Float.floatToIntBits(f1));
所有的文件都是以字节形式,对于字节和字符还是迷迷糊糊。字节和字符在Java里面char是字符节的定义,之前我一直以为要定义byte这个虽然是1字节。而string是是一串字符数组。
关联划线:ByteArrayInputStream
Java真的需要温故而知新
关联划线:左移:操作符为<<,向左移动,右边的低位补0,高位的就舍弃掉了,将二进制看作整数,左移1位就相当于乘以2。 2)无符号右移:操作符为>>>,向右移动,右边的舍弃掉,左边补0。 3)有符号右移:操作符为>>,向右移动,右边的舍弃掉,左边补什么取决于原来最高位是什么,原来是1就补1,原来是0就补0,将二进制看作整数,右移1位相当于除以2。
Java里面都是有符号整型,无法达到最高位1byte虽然有8bit(位)但是实际只要7个能表示,因为最高位代表正负。
关联划线:用1表示负数,用0表示正数。但哪个是最高位呢
这个只是内存位置的指向改变了
关联划线:给数组变量赋值和给数组中元素赋值是两回事,给数组中元
声明变量会有两个位置,一个是变量的位置一个是值的位置。
关联划线:声明变量本身只会分配存放位置的内存空间,这块空间还没有指向任何实际内容。
学了Java但是感觉自己还不怎么理解面相对象。
关联划线:❑ 类方法只能访问类变量,不能访问实例变量,可以调用其他的类方法,不能调用实例方法。







