Java学习笔记

IDEA快捷键:
Ctrl + p :创建对象时,提示有参构造列表。
在这里插入图片描述
Alt + Insert :生成代码(如GET,SET方法,构造函数等)。
Shift + F6 : 批量修改字符。
Ctrl + Shift + U :将选中的字符改为英文大写或小写。
在这里插入图片描述

1.环境变量
在这里插入图片描述

2.JDK与JRE
JDK: Java Development Kit
JRE: Java Runtime Environment
JRE是将JDK中的JVM、核心类库、运行时需要的运行工具单独抽离出来。因此JRE包含于JDK,JRE属于JDK的一部分.
在这里插入图片描述
在这里插入图片描述

  1. Java方法重载
    方法重载(Method Overloading)是指在同一个类中定义多个方法,它们具有相同的名称但具有不同的参数列表。通过方法重载,可以根据不同的参数类型和参数个数来调用不同的方法。

  2. 输入输出
    system.out.print(xxx) 打印后不换行
    system.out.println(xxx) 打印后换行 // IDEA(sout)
    system.out.println() 只换行
    system.out.printf(“Age is :%d”, age); 占位符 // IDEA(souf)

在这里插入图片描述
接收字符串时,next遇到空格就停止接收,而nextLine会接收包括空格在内的字符串。

  1. private修饰后只能在本类中使用。
    在一个类中,如果一个变量定义在方法里面,则称为局部变量;如果一个变量定义在方法外面,类的里面,则称为成员变量。若在方法中局部变量与成员变量同名,则遵循就近原则,也可以在变量前加上this.关键字可以将其标识为成员变量。因此,this.的作用是区分成员变量和局部变量。

6.构造方法:创建对象的时候,由虚拟机自动调用,给成员变量进行初始化的。
如果没有写构造方法,那么虚拟机会自己加一个无参构造方法,如果自己定义了有参构造方法,那么系统将不再提供默认的构造方法,无参构造得自己另外写。开发中,无论是否使用,都手写无参构造方法,和有参数的构造方法。构造方法可重载。

  1. JavaBean类:一种标准的Java类,遵循特定的命名约定和编程规范。
    IDEA中的PTG插件可以快速生成JavaBean。
    在这里插入图片描述

  2. 基本数据类型和引用数据类型之区别
    在这里插入图片描述

  3. 三元运算符(?)
    根据条件返回不同的值
    在这里插入图片描述

eg:

age = (age < 0) ? 0 : age; //判断若age为负数则将其置为0,非负数则为原来的值。

10.字符串方法
字符串比较是否相等

boolean res1 = s1.equals(s2); //比较s1和s2字符串是否相等,考虑大小写
boolean res2 = s1.equalsIgnoreCase(s2); //比较s1和s2字符串是否相等,忽略大小写

charAt方法:获取字符串中的单个字符

    String str = "Hello, World!";
    // 获取索引为2的字符
    char ch = str.charAt(2);

Stringbuilder方法:是一个用于操作字符串的可变类。它属于java.lang包,并且提供了多种方法来修改、添加和删除字符串内容,而不会创建新的字符串对象。这使得StringBuilder在需要频繁修改字符串的场景下效率更高,因为它避免了频繁创建新的字符串对象的开销。

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.reverse();//使用reverse()方法反转字符串
String str = sb.toString();//将StringBuilder操作的字符串赋值给str字符串(用toString方法)

StringJoiner: StringJoiner是一个用于连接字符串的实用类。它属于java.util包,并且提供了一种简单的方式来拼接多个字符串,并且可以指定前缀、后缀以及分隔符。在这里插入图片描述

  1. ArrayList(集合)
    集合不能存储基本数据类型,只能存引用数据类型。
    ArrayList增删改查
ArrayList<String> list = new ArrayList<>();
增加元素: list.add("phl");
删: list.remove("phl")  //删除集合中的phl元素
删: String str = list.remove(0)     //删除0下标对应的值,并且返回删除的值
改: String str = list.set(2,"phl")   //将第三个值赋值为phl,返回被覆盖的旧值
查: String str = list.get(0)   //查询第一个元素值
查集合长度:int len = list.size()
  1. static关键字
    静态变量是一种属于类而不是实例的变量。它们被声明为static关键字,并且在类的所有实例之间共享相同的值。静态变量可以通过类名直接访问和赋值。
    静态方法是与类关联而不是与类的实例关联的方法。你可以在不创建类的实例的情况下调用静态方法。这些方法通常用于执行不依赖于对象状态的操作,例如工具方法或数学函数。
    在这里插入图片描述12.继承
    在这里插入图片描述
    直接父类与间接父类
    在这里插入图片描述
    每一个类都直接或者间接继承于Object类

子类不能继承父类中的构造方法。
子类能全部继承父类中的成员变量(即使被private修饰),只是使用被private修饰的成员变量的时候要用set和get方法。
子类能继承父类中的public成员方法,不能继承private修饰的成员方法。(因为public成员方法在虚方法表中)。若子类中的变量与父类重名,用super.变量名对父类中的变量进行标记
在这里插入图片描述
方法的重写
方法重写(@Override)是指在子类中重新定义(或覆盖)其父类中的同名方法。方法重写的前提是子类中的方法与父类中的方法具有相同的方法名、参数列表和返回类型。(方法重写时,@Override注解可以校验重写是否正确)在这里插入图片描述
13. 多态
用父类型作为参数,可以接收所有子类对象。

 Animal a = new Dog();// new谁就调用谁的方法,引用是谁,就用谁的成员和静态。此处用Animal的成员变量,用Dog的成员方法。

多态的弊端是不能使用子类的特有功能,必须将对象强制转换成子类类型才能调用。
instanceof:可以判断对象所属的类别。
a instanceof Dog d :先判断a是否为Dog类型,如果是,则强制转成Dog类型,转换之后的变量名为d.

Animal a = new Dog();

if(a instanceof Dog d){ //先判断a是否为Dog类型,如果是,则强制转成Dog类型,转换之后的变量名为d.
	d.lookHome();
}
//上面的if效果等同于下面的if
if(a instanceof Dog){
	Dog d = (Dog) a;
	d.lookHome();
}
  1. final 常量
    在这里插入图片描述
    细节:
    在这里插入图片描述

  2. 权限修饰符在这里插入图片描述

  3. static 静态代码块:可以用于程序的数据初始化,且只会初始化一次。
    格式:static { }

  4. 抽象类与抽象方法
    抽象类的子类中,必须重写抽象方法。
    在这里插入图片描述

  5. 接口
    接口中没有构造方法。
    接口中的成员方法默认修饰符为: public abstract
    接口中的成员变量默认修饰符为: public static final (只能是常量)
    接口1可以继承接口2,实现接口1的话还要将接口2里面的抽象方法实现了。

  6. 内部类
    内部类是一个类中的类,内部类可以访问母类中的变量(包括私有变量)。内部类是母类的一部分,且内部类单独存在没有意义。
    a.成员内部类
    b.静态内部类和局部内部类
    c.匿名内部类:Java中的匿名内部类是一种特殊类型的内部类,它没有显式地被命名。它们通常用于实现接口或扩展类,并且只包含一个实例方法。由于它们没有名称,因此不能在其他地方重复使用。

Button b = new Button() {
public void onClick() {
System.out.println(“Button clicked!”);
}
};
//斜体部分本身就是一个对象
在这里插入图片描述
20. 拼图小游戏
在这里插入图片描述
事件:

21.常用API:
1.Math
在这里插入图片描述
2. System函数在这里插入图片描述
3. Runtime在这里插入图片描述
4. Object
浅克隆与深克隆在这里插入图片描述
在这里插入图片描述
5. BigInteger 是 Java 标准库中的一个类,用于支持任意精度的整数计算。它允许你在没有固定大小限制的情况下进行任意大整数的数学运算,不受 int 或 long 等固定大小整数类型的限制。

以下是关于 Java 中的 BigInteger 的一些关键点:

任意精度:BigInteger 可以表示任何大小的整数,仅受内存可用量的限制。这使得它适用于处理极大数,例如在密码学或科学计算中遇到的数值。

创建 BigInteger 对象:你可以使用 BigInteger 类的构造函数来创建 BigInteger 对象。可以通过传递一个字符串、一个 long 值或者另一个 BigInteger 对象来创建。
在这里插入图片描述
在这里插入图片描述
22. 正则表达式在这里插入图片描述

二、多线程编程
在这里插入图片描述
在这里插入图片描述
run() 方法和start() 方法的区别:调用start() 会触发多线程执行 ;调用run() 还是当做执行了一个普通方法,没有多线程执行。
把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由jvm的内存机制规定的。

实现多线程的方法有两种:
1.
在这里插入图片描述
2.
在这里插入图片描述

三、网络编程
在这里插入图片描述
不同的局域网给同一设备分配的IP地址不一样。
(NAT(Network Address Translation)是计算机网络中的一种技术,用于在不同网络之间转换IP地址。它允许多个设备在一个公共IP地址下访问因特网。NAT的主要优势在于它可以节省公共IP地址的使用,因为多个设备可以共享一个公共IP地址。此外,NAT还提供了一定程度的网络安全,因为它隐藏了局域网内部设备的真实IP地址,对外界来说,只能看到公共IP地址。)
IPv4地址:192.168.开头的就是私有址址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用,以此节省IP。
特殊IP地址:127.0.0.1(本机IP),也可以是localhost:是回送地址也称本地回环地址,也称本机IP,永远只会寻找当前所在本机。在这里插入图片描述

  • 46
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值