
java学习笔记
记录学习内容
LostStarxxx
保持清醒,不断学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习笔记:动态代理和静态代理
静态代理的缺点: 1.当有多个类需要代理(业务需求不同时),那么就需要创建多个代理,同时创建多个代理对象去调用相应的方法 2.或者让一个代理类去实现多个接口,然后让代理创建的代理类需要重写全部的方法 动态代理 动态代理可以解决上述问题. 1.动态代理的代理对象时运行时动态产生,无需写多个代理对象 2.通过代理对象调用目标方法 3.动态代理产生代理对象的过程中,底层使用了反射 流程: 1.动态代理类需要实现InvocationHandler接口,重写invoke方法,它的返回值回一个代理对象,可以原创 2020-07-04 10:17:23 · 160 阅读 · 0 评论 -
学习笔记:集合总结
文章目录ListMapSet迭代器Collections工具类 List 1.ArrayList 底层使用数组实现存储。 特点:查询效率高,增删效率低,线程不安全,通常使用。 与数组差异点在于,数组长度是有限的,需要给定一个长度,但是ArrayList可以存放任意长度的对象,没有长度限制,底层实现方式是将原数组内容复制到一个更大的数组中。 2.LinkedList 底层使用双链表实现存储。 双链表:每个数据节点都有两个指针,分别指向前一个节点和后一个节点。 特点:查询效率低,增删效率高,线程不安全。 3.V原创 2020-06-12 17:03:45 · 193 阅读 · 0 评论 -
学习笔记:Comparable接口,TreeMap中实现自定义的排序
package cn.dzy.comparableTest; import java.util.TreeMap; public class Student implements Comparable<Student> { private String name; private int id; private int grade; public Student(String name, int id, int grade) { this.na原创 2020-06-12 13:36:34 · 229 阅读 · 0 评论 -
学习笔记:String类
String是不可变字符序列。 String常用方法 { contains(String); //是否包含某字符串 startsWith(String); //字符串是否以某字符串开始 endsWith(String); //是否以某字符串结束 equalsIgnoreCase(String); //比较是否相同,忽略大小写 getBytes(); //转换为字节数组 indexOf(int); //判断某字符第一次出现的位置 indexOf(int,int);原创 2020-06-07 18:59:01 · 170 阅读 · 0 评论 -
学习笔记:nextInt后面写nextLine会遇到的Bug
public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入一个整数:"); int i = sc.nextInt(); System.out.println(i); System.out.println("输入字符串"); S转载 2020-06-07 15:13:03 · 394 阅读 · 0 评论 -
学习笔记:匿名内部类
匿名内部类书写格式: new 接口名(){ 重写方法 }; interface Demo2{ void show(); } public class Test { public static void main(String[] args) { //匿名内部类 //如果想调用接口Demo2中的show方法,有三种解决办法: //1.写一个实现类,实现接口,然后重写show方法 //2.直接在这里写一个内部类,然后实现接口,然后调用原创 2020-06-06 18:26:35 · 199 阅读 · 0 评论 -
学习笔记:内部类总结
成员内部类 静态内部类 **局部内部类(写在方法内的)** 私有内部类原创 2020-06-06 18:10:22 · 182 阅读 · 0 评论 -
学习笔记:接口的新特性
jdk8之后出现 接口允许出现带有方法体的静态和非静态方法。 在这里插入代码片原创 2020-06-05 20:33:04 · 222 阅读 · 0 评论 -
学习笔记:类和接口,接口和接口的关系,抽象类和接口的区别
类和接口的关系 类与类中只能单继承,不能多继承;但是可以多层继承。 类与接口可以多实现,一个类实现多个接口 接口和接口的关系 接口可以实现多继承(继承接口)。 interface A extends B,C{ } 接口内的方法都是抽象方法,无需方法体;接口内没有构造方法 //如果在接口内定义一个这样的方法: void run(){ } //编译器默认添加public abstract 抽象类和接口的区别 抽象类是自下而上,抽取出共同点。 接口是一种规范, 它是自上而下的一种要求,要求实现类必须做到这种规原创 2020-06-05 18:30:46 · 268 阅读 · 0 评论 -
学习笔记:多态的总结
发生多态的条件 1.继承 2.父类引用指向子类对象 3.子类重写父类方法 总结:多态中使用的成员(方法、变量),除了重写的方法外,其他的都是使用的父类的成员。 多态的好处和弊端 1.提高代码扩展性 2.提高代码的复用性 弊端:不能使用子类特有的成员 向上转型和向下转型 Animal a = new Dog(); //自动向上转 Dog d = (Dog)a; //强制向下转 //Cat c = (Dog)a; //编译错误 经过向下转型之后,就可以使用子类特有的成员原创 2020-06-05 15:27:36 · 172 阅读 · 0 评论 -
学习笔记:修饰符权限总结
修饰符 同一个类 同一个包下 子类 任意类 private √ default √ √ protected √ √ √ public √ √ √ √ 释义: private:只能自己使用 default:自己或者同一包下的类使用 protected:给子类使用 public:随便谁都能用 ...原创 2020-06-05 10:20:41 · 191 阅读 · 0 评论 -
学习笔记:异常类层次结构图
异常类层次结构图原创 2020-05-31 16:47:37 · 337 阅读 · 0 评论 -
学习笔记:容器接口结构图
容器的接口层次结构图原创 2020-05-31 16:46:35 · 383 阅读 · 0 评论 -
学习笔记:Integer缓存[-128,127]之间的值
Integer a = -128; Integer b = -128; //因为Integer缓存了[-128,127]的数据,赋值的时候直接返回缓存数据,不需要创建新的Integer对象 System.out.println(a == b); //true System.out.println(a.equals(b)); //true Integer c = 1234; Integer d原创 2020-05-25 09:53:06 · 218 阅读 · 0 评论 -
学习笔记:全局变量定义“无须”初始化,局部变量必须初始化
举例: public class Test { int a,b=10; //全局变量 public static void main(String[] args) { // int c,d=10; //局部变量 // System.out.println(c+" "+d); //错误。未初始化 Test t = new Test(); System.out.prin转载 2020-05-23 08:55:44 · 1406 阅读 · 0 评论 -
学习笔记:运算时的隐式类型转换
数据类型表示的范围 从小到大 byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) char(2) boolean (1)类型 不参与其他几种基本类型的排序比较。 运算时的隐式转换: 凡是小于等于int类型的数据类型在运算的时候,一律自动转换为int进行计算 1.byte+byte ,结果自动转换为int类型: byte a = 1; byte b = 2;原创 2020-05-23 08:46:59 · 441 阅读 · 0 评论 -
学习笔记:JVM的垃圾回收机制
回收过程 1.发现无用的对象 2.回收无用对象占用的内存 回收算法 1.引用计数法 不常用(了解) 2.根搜索算法 程序运行时所有的引用看做一张图,从跟节点开始,引用到的节点就是有用的,运行完毕没有被引用的节点会被杀掉。 回收机制 ...原创 2020-05-21 22:29:56 · 241 阅读 · 0 评论 -
学习笔记 :Java中的按位取反(~)以及原码、反码、补码
此篇记录java中按位取反操作,即 ~ 整数的原码、反码、补码一致 负数的反码为符号位不变,其余各位取反;补码为反码的基础上+1 原码: 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制。 3的原码: 0000 0011 -3的原码: 1000 0011 反码: 正数的反码就是原码。 负数的反码是在其原码的基础上, 符号位不变,其余各位取反。 -3的反码: 1111 1100 补码: 正数的补码就是原码。 负数的补码是在其反码的基础上+1。 -3的补码: 1111原创 2020-05-20 16:44:40 · 790 阅读 · 0 评论 -
学习笔记:其他进制转换10进制
int aa = 15; //10进制 int bb = 015; //8进制 : 0 int cc = 0x15; //16进制 :0x int dd = 0b1101; //2进制 输出结果: 15 13 21 13 8进制→10进制 按照上述举例,8进制的015转换为10进制得13,过程如下: 8¹+(8º*5)=13 16进制→10进制 同上举例0x15转为10进制得21,过程如下: 16¹+(16º*5...原创 2020-05-18 15:26:49 · 1433 阅读 · 0 评论 -
学习笔记:String字符串的比较与连接
package String类; /** String类的练习,字符串的比较 @author Magiskboy 字符串比较时要用equals方法 ,不要用==做比较 */ public class StringClassTest { public static void main(String[] args) { String s1 = "hello" + "java"; /...原创 2019-10-30 23:38:59 · 255 阅读 · 0 评论