12 2021 档案
摘要:ArrayList源码分析 注意事项 底层源码(重点、难点!!!) 使用无参构造器 public class ArrayListSource { public static void main(String[] args) { //使用无参构造器创建arraylist对象 ArrayList lis
阅读全文
摘要:集合 学习注意点:具体应用场景和源代码的阅读 集合框架体系图(背下来!!!) 单列集合: 双列集合: Collection接口 常用方法 collection接口遍历方法 1.Iterator迭代器 package collection; import java.util.ArrayList; im
阅读全文
摘要:1. public static void main(String[] args) { String s="abcdef"; System.out.println("交换前:"+s); try { s=reverse(s,1,4); } catch (Exception e) { System.ou
阅读全文
摘要:System类 (1) 这里只执行了ok1 (2) public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length); 参数说明: src:源对象srcPos:源数组中的起始
阅读全文
摘要:Math类 基本介绍 常用方法 取a-b之间整数公式 int r =(int)(a+Math.random()*(b-a+1)); Arrays类 (1) int[] a= {1,45,56}; System.out.println(Arrays.toString(a)); //[1, 45, 56
阅读全文
摘要:StringBuffer类 基本介绍 StringBuffer与String比较 构造方法 1. 2. 3. StringBuffer与String相互转换 1.String ->StringBuffer (1) (2) 2.StringBuffer ->String (1) (2) StringB
阅读全文
摘要:jdk1.8中文谷歌版:小伙伴们需要的自取(永久有效)链接:https://pan.baidu.com/s/1cGUEI2hKDlqkugSww8F22w 提取码:b1dt --来自百度网盘超级会员V3的分享
阅读全文
摘要:String类 String类的理解和对象创建 String name = "tom"; 这里 name 是变量,tom是常量,可以将新的字符串赋值给变量name name = "jack"; 我们先来看一下继承关系 接着看一下String类的源码 public final class String
阅读全文
摘要:包装类(Warpper) 除了Boolean和Character其他六个包装类都是继承的Number 包装类和基本数据类型的转换(以int为例,其他类型以此类推) // 手动装箱 int -> Interger int n1 = 100; Integer integer = new Integer(
阅读全文
摘要:传统方法 package oop.program; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class SmallChangeSys01 { public s
阅读全文
摘要:整体结构 工具类——Utility package oop.houserentexercise; /** 工具类的作用: 处理各种情况的用户输入,并且能够按照程序员的需求,得到用户的控制台输入。 */ import java.util.*; /** */ public class Utility {
阅读全文
摘要:1. /** * @author 紫英 * @version 1.0 * @discription 接口作业 */ public class Homework { public static void main(String[] args) { Person person = new Person(
阅读全文
摘要:异常(Exception) 基本概念 快捷键:ctrl+alt+t 异常体系图(重点!!!) ps:这里只写了五个基本的运行异常,想自己看的可以在idea里通过追throwable类来查看 常见运行时异常 常见编译异常 异常处理的两种方式 try-catch-finally 当程序捕获到异常的时候立
阅读全文
摘要:枚举(enumeration)类 两种实现方式:自定义类实现、使用enum关键字实现 自定义枚举类 引出: 定义一个Season类,但是只想要春夏秋冬四个对象,不想让人为添加 格式: 1.将构造器私有化,防止直接new 2.去掉set方法,防止属性被修改,可以留下get方法 3.在类的内部直接创建固
阅读全文
摘要:内部类 基本介绍 类的五大成员:属性、方法、构造器、代码块、内部类 分类 局部内部类 说明: 局部内部类是定义在外部类的局部位置之中(比如方法或者代码块),并且有类名。 1.可以直接访问外部类的所有成员,包括私有成员。 2.不能添加访问修饰符,但是可以使用final修饰。因为它的地位就相当于一个局部
阅读全文
摘要:接口 默认关键字(default) 使用细节 接口的实现补充了Java的单继承机制。当子类继承了一个父类,则自动拥有父类的方法,如果还想实现一些拓展功能,就可以通过实现接口的方式来扩展。 小猴子继承了大猴子天生会爬树,但是可以通过学习(接口)来像小鸟一样飞翔和小鱼一样游泳 接口的多态 接口的多态传递
阅读全文
摘要:抽象类(abstrct) 使用细节: 1.抽象类不能被实例化 2.抽象类可以不包含abstract方法 3.一旦一个类包含了abstract方法则该类必须被声明为abstract类 4.abstract只能修饰类和方法,不能修饰其他 5.abstract类的本质还是类,即可拥有正常类的所有构成要素(
阅读全文
摘要:final关键字 7.说明:搭配使用可以实现调用final变量但是不会导致类加载(推荐)
阅读全文
摘要:单例模式 饿汉式 步骤: 1.构造器私有化(为了防止直接new) 2.在类的内部创建一个static的私有化对象 3.提供一个公共的static方法来返回刚才的对象 单例模式的对象一般都是重量级的对象,饿汉模式的对象在类加载的时候就已经被创建好,但可能用不到,所以可能会造成资源的浪费。 public
阅读全文
摘要:代码块 如果构造器中有相同的语句,可以将其放入一个代码块中,这样的话不管我们调用哪个构造器,都会优先调用代码块的内容,代码块的调用顺序优先于构造器。 (静态)方法只有在被调用时才执行,类加载时不执行 使用细节 1.static代码块是在类加载的时候执行,只执行一次 2.普通代码块是在创建对象的时候调
阅读全文
摘要:类变量和类方法 类变量 什么是类变量 定义方法 访问方式 特点 所以即使没有创建对象实例也可以访问 使用细节 类方法 定义方法 调用方式 使用static方法就可以访问static变量 经典使用场景 使用细节 main方法 另外 卖弄方法也是一个普通方法,是可以继承和重载重写的 给args传参数可以
阅读全文
摘要:能否调用某个方法看编译类型,但是运行的时候是从运行类型开始找起(动态绑定) 向上转型和向下转型指的是运行类型,编译类型无法改变
阅读全文
摘要:F9 resume 执行到下一个断点
阅读全文
摘要:==和equals 可以查看jdk原码 用structrue查看object类的结构 public boolean equals(Object obj) { return (this == obj); } String类对其进行了重写 public boolean equals(Object anO
阅读全文
摘要:检索条件筛选: 命令行中粘贴是shift + ins(insert) 使用Steam++可以加速 V(virtual)P(personal)N(Network)虚拟专用网络 相关指令 下载git注册git账号并进行全局配置 // Git Bash Here 1. git config --globa
阅读全文
摘要:方法重写(override) 重写(override)和重载的比较(overload) 多态(polymorphic) package test; /** * @author 紫英 * @version 1.0 * @discription 随便写 */ class Test { public st
阅读全文
摘要:封装(encapsulation) 好处: 隐藏实现细节 可以对数据进行验证,保证安全且合理 实现步骤: 为确保安全可以在构造器中写上set方法 public Person(String name, int age, double salary, String job) { this.setName
阅读全文
摘要:包 同一个包下类名不可以相同 访问修饰符(Modifier)
阅读全文
摘要:Idea相关命令 查看快捷键:Ctrl+j for循环快捷键:100.for 代码整理:Ctrl+Alt+L 捕获异常:ctrl+alt+t 复制上一行:Ctrl+D 构造器:Alt+Insert (无参构造器可以用tab来选 select none 代替鼠标) 生成对象:Ctrl+Alt+v 删除
阅读全文
摘要:编写类A01,定义方法max(),实现求某个double数组的最大值 我的: package oop; public class Homework01 { public static void main(String[] args) { double [] array={1.5,6.5,3.14,8
阅读全文
摘要:构造器/构造方法(constructor) 简介: 不能用对象来调用构造器 javap:反编译指令——对.class文件使用,能看到编译前的源文件,常用的有javap-c(反汇编) ,-v public static void main(String[] args) { Person01 p1 =
阅读全文
摘要:方法重载(overload) 简介 这种不能被称为重载(只是名字不一样) 返回值不同也不算重载,是方法的重复定义。 可变参数(variable parameters) 小练习: public class Varparameter { //可变参数 public static void main(St
阅读全文
摘要:递归(recursion) 首先明确一个知识点——方法执行完后会返回到调用它的地方。 小例子: 每个栈都会走玩自己的流程在释放,n=2的时候开始释放,然后逐级返回到上一个栈空间——即调用自己的地方,然后开始打印。 如果改成: 则只输出一个n=2,以为在开始返回的时候之前栈的n都>2所以就不走else
阅读全文
摘要:类与对象 属性 类的属性也可以叫做成员变量、字段、field 属性细节: 堆中开辟的空间以及相应的数据才是真正的对象,cat只是指向这个对象,称为对象引用(对象名) 对象的创建 属性的访问 对象是引用类型,p1和p2指向同一个地址,所以p1改变的同时p2也跟着改变。 类信息只会加载一次 这里的 b=
阅读全文
摘要:数组、排序和查找 一维数组 三种初始化方式: 动态初始化(1) 数据类型 [] 数组名=new 数据类型 [大小]; int [] num =new int [10]; 可以 使用数组名.length获取数组长度 Scanner sc = new Scanner(System.in); for (i
阅读全文
摘要:if等分支较简单就不举例了 Scanner sc = new Scanner(System.in); int month; int age; int hot_price = 60; int cold_price = 40; System.out.println("please enter month
阅读全文
摘要:运算符 1.算术运算符 arithmetic:算术 除法 / 的使用 看一段代码: System.out.println(10 / 4); //输出为2 因为是两个整数相除,所以结果默认用整数来接收 System.out.println(10.0 / 4);//输出为2.5 double d = 1
阅读全文
摘要:程序中 +号 的使用 当左右都是数值类型时,做加法运算 当左右有一个为字符串时,做拼接运算 运算顺序为从左到右 System.out.println(100+3);//103 System.out.println("100"+3);//1003 System.out.println(100+3+"h
阅读全文
摘要:JDK、JRE、JVM的关系 JDK : Java Development Kit JRE : Java Runtime Environment JVM : Java Virtual Machine (Java虚拟机) JDK = JRE + 开发工具集(例如 Javac,java 编译工具、jco
阅读全文