
Java学习
aoi.tsukasa
小白程序员,欢迎评论指出错误,讨论问题哦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java-HashMap的初始化与扩容
以无参构造为例,解析HashMap从创建到扩容的源码// 默认初始化容量 16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;// 默认加载因子static final float DEFAULT_LOAD_FACTOR = 0.75f;// 初始节点数组transient Node<K,V>[] table;// 阈值,达到就扩容int threshold;final float loadFactor;原创 2021-10-07 18:49:48 · 257 阅读 · 0 评论 -
Java-Java是值传递
值传递:值传递就是在函数调用的时候,把实参复制一份传给函数,这样如果在函数中对参数进行修改的话,不会影响到实际参数。引用传递:而引用传递就是在函数调用的时候,把实际参数在内存中的地址直接传给函数,这样如果函数中对参数进行修改的话,就会影响到实参的值。如下代码,在所谓的引用传递当中,我们将user对象的地址传递给了形参,而方法内将对象做了修改,形参与实参指向对象相同,所以输出结果相同。public class test { public static void main(String[] arg原创 2021-10-07 18:49:16 · 166 阅读 · 0 评论 -
Java-HashMap尾插法
值传递:值传递就是在函数调用的时候,把实参复制一份传给函数,这样如果在函数中对参数进行修改的话,不会影响到实际参数。引用传递:而引用传递就是在函数调用的时候,把实际参数在内存中的地址直接传给函数,这样如果函数中对参数进行修改的话,就会影响到实参的值。如下代码,在所谓的引用传递当中,我们将user对象的地址传递给了形参,而方法内将对象做了修改,形参与实参指向对象相同,所以输出结果相同。public class test { public static void main(String[] arg原创 2021-10-07 18:46:54 · 1389 阅读 · 0 评论 -
Java-集合
数组长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能存储引用类型[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Gah7KE4-1627712339924)(C:\Users\14284\Desktop\Markdown文档\Java 基础\集合\1.png)]1. List特点:有序,有下标,元素可重复,1.1 ArrayList特点:查找快,增删慢,线程不安全注意:我们所说的有序是指存入数据和读取数据顺序一致,反之则为无需。并不是..原创 2021-07-31 14:20:22 · 137 阅读 · 0 评论 -
Java-成员变量初始化优先于构造函数的执行
public class test { public static void main(String[]args){ test t = new test(); test.c2 c = t.new c2(); } class c2 extends c1{ // public String s="BBBB"; //子类构造函数 public c2(){ call();原创 2021-07-29 00:01:05 · 566 阅读 · 0 评论 -
Java-String.length()与String.getBytes().length()
String.length()是表示字符串所需的UTF-16代码单元的数量。也就是说,它是用于表示字符串的char值的数量,因此等于toCharArray().length。String.getBytes().length是在平台的默认编码中表示字符串所需的字节数。public class test { public static void main(String[] args) throws UnsupportedEncodingException { String s = "原创 2021-07-19 11:32:06 · 951 阅读 · 0 评论 -
Java-ArrayList扩容
以无参数构造方法创建 ArrayList 时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为10。// 用于默认大小的空实例的共享空数组实例。我们将其与 EMPTY_ELEMENTDATA 区分开来,以了解在添加第一个元素时要膨胀多少private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};transient Object[] elementDat原创 2021-07-19 11:31:26 · 111 阅读 · 0 评论 -
Java-向上转型与向下转型
一,向上转型创建父类public class Father{ public void sayHello(){ System.out.println("i am your father"); } public void doSomething(){ System.out.println("make money"); }}创建子类public class Son extends Father{ public void sayH原创 2021-07-19 11:30:47 · 130 阅读 · 0 评论 -
Java-内部类
内部类的分类:成员内部类(静态,非静态),局部内部类(方法内,代码块内,构造器内)1. 成员内部类作为外部类的成员调用外部类的结构可以被static修饰可以被4种不同的权限修饰作为一个类类内可以定义属性,方法,构造器等可以被final修饰,表示此类不能被继承可以被abstract修饰public class Person { String name; int age; public void sayHello(){ System.out原创 2021-07-19 11:30:13 · 347 阅读 · 0 评论 -
Java-构造方法
Java 构造方法有以下特点:方法名必须与类名相同可以有 0 个、1 个或多个参数没有任何返回值,包括 void默认返回类型就是对象类型本身只能与 new 运算符结合使用在一个类中定义多个具有不同参数的同名方法,这就是方法的重载。在实例化该类时可以调用不同的构造方法进行初始化。public class Pet{ private String name; int health; int love; public Pet(String name, int health原创 2021-07-19 11:29:44 · 167 阅读 · 0 评论 -
Java-构造代码块与静态代码块
构造代码块public class Dog extends Pet{ // 子类特有成员 String strain; public Dog(String name,int health,int love,String strain){ this.strain = strain; System.out.println("Dog类的构造方法"); } { System.out.println("Dog类的构造代码块"); }原创 2021-07-19 11:29:12 · 86 阅读 · 0 评论 -
Java-访问控制权限
默认访问权限(包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。public:用来修饰类的话,表示该类对其他所有的类都可见。只有default和public可以修饰类默认访问权限(包访问权限):如果一个类的方法或变量被包访问权限修饰,也就意味着只能在同一个包中的其他类中显示地调用该类的方法或者变量,在不同包中的类中不能显示地调用该类的方法或变量。private:如果一个类的方法或者变量被private修饰,那么这个类的方法或者变量只能在该类本身中被访问,在类外以及其他类中都不能显示地原创 2021-07-19 11:28:16 · 106 阅读 · 0 评论 -
Java-断言
IDEA中开启断言在edit configurations… > VM options > 输入 -ea断言可以有两种形式assert 布尔表达式assert 布尔表达式:消息使用第一种格式,当布尔类型表达式为false时,抛出AssertionError异常;如果是第二种格式,则输出错误消息。public class test { static int i = 5; public static void main(String[] args) {原创 2021-07-18 22:41:52 · 109 阅读 · 0 评论 -
Java-接口
用 interface 来定义。接口中的所有成员变量都默认是由public static final修饰的。所以变量需要显示赋值。接口中的所有方法都默认是由public abstract修饰的。接口没有构造方法。因为构造方法有方法体{}在JDK1.8中,接口中的方法可以有方法体,但需要关键字static或者default来修饰。静态方法和默认方法都有自己的方法体,用于提供一套默认的实现,这样子类对于该方法就不需要强制来实现,可以选择使用默认的实现,也可以重写自己的实现。static修饰的方法不能重写原创 2021-07-18 22:41:09 · 120 阅读 · 0 评论 -
抽象类与抽象方法
需求 : 用面向对象的思维设计人类、动物、鱼之间的继承关系在继承金字塔中,越位于塔顶的类越来越简单、抽象,导致该类的方法无法根据自身条件得以实现,此时需要子类根据自身条件实现该方法,可以把父类的方法 “置空”,这个被 置空 的方法称为抽象方法,用 abstract 修饰,语法[修饰符] abstract 返回值 方法名(形参列表);抽象方法一定位于抽象类中。抽象类语法[修饰符] abstract class 类名{ }继承抽象类的子类称为抽象类的实现类(implement clas原创 2021-07-18 22:39:20 · 241 阅读 · 0 评论