1852 字
9 分钟
JAVA笔记(新)
2024-02-17

概述#

重要特点#

  1. Java语言是面向对象的
  2. Java语言是健壮的。Java的强类型机制,异常处理,垃圾的自动收集等是Java程序健壮性的重要保证
  3. Java语言是跨平台性的。
  4. Java语言是解释型的

JDK,JRE和JVM的包含关系#

  1. JDK=JRE+开发工具集
  2. JRE=JVM+Java SE标准类库(java核心类库)
  3. 如果只想运行开发好的.class文件,只需要JRE

变量注意事项#

  1. 变量表示内存中的一个存储区域
  2. 该区域有自己的名称和类型
  3. 变量必须先声明,后使用,即有顺序
  4. 该区域的数据可以在同一类型范围内不断发生变化
  5. 变量在同一个作用域内不能重名
  6. 变量=变量名+值+数据类型。

数据类型#

  1. JAVA数据类型分为两大类,基本数据类型,引用类型
  2. 基本数据类型中有8种,数值型【byte,short,int,long,float,double】char,boolean
  3. 引用类型【类,接口,数组】
  4. image-20240206130036118

整型细节#

  1. Java各整数常量(具体值)默认为int型,声明long型常量需要后面加‘l’或‘L’
  2. bit:计算机中最小存储单元。byte:计算机中基本存储单元,1byte=8bit。

浮点型细节#

  1. 浮点常量默认为double型,声明float型常量,需要后面加‘f’或‘F’。
  2. image-20240205124700998

字符型细节#

image-20240205150549607

字符编码表#

image-20240205151902322

类以及类型转换#

类的组织形式#

image-20240205130613113

自动转换注意类型和细节#

image-20240206115337516

强制类型转换#

image-20240206120543945

运算符,标识符#

逻辑运算符一览#

  1. 规则image-20240207145826810

  2. 短路与与逻辑与

    image-20240207150407407

  3. 短路或与逻辑或

    image-20240208102450142

  4. 逻辑运算符规则

    image-20240208102625627

三元运算符#

  1. 细节

    image-20240208104933939

运算符优先级#

image-20240208112403422

进制#

image-20240214130330353

标识符命名规则#

image-20240208113954373

image-20240208113853990

原码反码补码#

  1. image-20240208125157611

  2. 为什么用补码来运算:补码可以把正数和负数连接起来。

位运算符#

image-20240209104548614

注意#

image-20240209105606550

重要的两个编程思想#

image-20240211110552932

程序控制#

switch,for,while,do…while

多重循环,

合理运用。

嵌套最好不超过三层

continue,break

数组#

概念#

image-20240213104338464

使用方式#

  1. image-20240213105611392

  2. image-20240213110719022

  3. image-20240213111200963

细节#

image-20240213112051387

冒泡排序#

特点:

image-20240213152132393

二维数组#

生成随机数#

  1. image-20240216084332618

  2. image-20240416190410543

  3. radom的nextInt(int n),指的是在0到n(不包括n)之间随机生成一个int型的值

二维数组内存中的存在形式#

image-20240216094126120

类与对象#

对象存在形式#

image-20240216101926243

基本介绍#

image-20240216102042106

注意细节#

image-20240216103253047

内存分配机制以及流程#

image-20240217085823699

image-20240217090141209

成员方法#

基本介绍#

image-20240217090758623

调用#

image-20240217100042064

定义#

image-20240217101339217

细节image-20240217103810276#

image-20240217104912597

编写思路#

image-20240217105312875

传参机制 parameter(参数)#

  1. image-20240217112529027

方法递归调用#

  1. 基本定义image-20240222110523226

  2. 重要规则

    image-20240222110708867

方法的重载#

  1. 基本介绍

    image-20240229201234983

  2. 细节

    image-20240229202859978

可变参数#

  1. 基本概念

    image-20240229210835049

  2. 解读

    image-20240229211702116

  3. 细节

    image-20240229212033476

作用域#

  1. 基本使用

    image-20240329074607152

  2. 注意事项

    image-20240415153620948

    image-20240415154017534

构造方法/构造器#

  1. image-20240415155254583

  2. image-20240415155653208

  3. class Person{
    	String name;
    	int age;
    	//构造器
    	// 1. 构造器没有返回值,也不能用void
    	// 2. 构造器的名称和类名一致
    	// 3. (String pName,int pAge)是构造器的形参列表,规则和成员方法一样
    	public Person(String pName,int pAge){
    		System.out.println("构造器被调用");
    		name=pName;
    		age=pAge;
    	}
    }
    
    //小点(.)是对象访问符,例:p1.age
    
  4. 注意事项和细节

    image-20240415173241656

    image-20240415174607185

    Javap可以反编译

  5. 对象创建流程分析

    • 方法区加载类信息(只会加载一次),在堆中开辟一块该类的空间(分配地址)。
    • 根据类里定义的全局变量(属性)将该空间划分出来,默认初始化:初始值int型为0,string型为null。
    • 显式初始化:如果属性有赋值初始值,将其赋给该属性。
    • 构造器初始化:如有传参,应用相应的构造器进行属性值的更改。string类型从常量区进行加载。
    • 将堆中的对象的地址返回给栈中的p(对象的引用/对象名)。
    • image-20240416092335958

this关键字#

  1. 因为java是在jvm虚拟机上运行的,所以没有办法直接获取真实的地址。折中办法使用hashCode()返回对象的哈希码值,可以近似当作对象的地址。

  2. image-20240416132150379

  3. image-20240416134405129

  4. image-20240416133935312

练习#

  1. Double是double的包装类。返回值可以为空:null。

  2. 注意:静态方法可以直接通过类名调用

    image-20240423104842519

#

三大作用#

image-20240417142603644

包的本质#

image-20240417143036446

包的命名#

image-20240417145008959

常用的包#

image-20240417162952894

注意事项以及细节#

image-20240417163906304

访问修饰符#

基本介绍#

image-20240417210003328

注意事项#

image-20240417210140114

面向对象三大特征#

封装#

  1. 介绍

    image-20240417212009860

  2. 好处

    image-20240417212443831

  3. 实现步骤

    image-20240417212719317

  4. 如果在构造器中也需要对数据进行判断,可以把get/set跟构造器结合。在构造器内部调用get/set方法。

继承#

  1. 基本介绍以及基本语法

    image-20240418102037505

  2. 细节

    image-20240418103215176

    image-20240418105255972

    image-20240418152902713

    image-20240418153247970

    image-20240418153835918

  3. 继承的本质

    • 内存布局图

    image-20240418162246737

    • 继承顺序

      image-20240418162354155

  4. super关键字

    • 基本介绍

      image-20240419090505715

    • 细节

      image-20240419091014840

      image-20240419091519647

    • 表格

      image-20240419091743083

    • 演示规则

      image-20240422085111714

  5. 方法重写

    • 基本介绍

      image-20240419092417643

    • 细节

      image-20240419093432498

    • 重写和重载的区别

      image-20240419094311451

多态#

  1. 基本介绍

  2. 具体体现

    • image-20240419140740725
    • image-20240419141806954
  3. 向上转型

    • 注意事项,细节

      image-20240419143413528

    • 调用方法规则

      image-20240419143451600

  4. 向下转型

    image-20240419162306206

  5. 注意事项

    image-20240419163110776

  6. 动态绑定机制

    image-20240421075532209

  7. 多态应用

    • 多态数组

      image-20240421081459534

      A instanceof B:判断A的运行类型是不是或者B的子类,

    • 多态参数

      image-20240421082733593

  8. 什么是多态,多态的具体体现有哪些?

    image-20240422122133122

    (3)编译类型看定义时=号的左边,运行类型看=号的右边。

Object类详解#

equals方法#

  1. ==和equals的对比

    image-20240421084013597

    image-20240421084632558

  2. 示例表格

    image-20240422110309316

  3. instanceof

    image-20240422104802468

hashCode方法#

  • 6点小结

    image-20240421095631165

toString方法#

  • 基本介绍

    image-20240421100345494

finalize方法#

  • image-20240421101441894

断点调试#

注意事项以及介绍#

image-20240421111913100

快捷键#

image-20240421112049155

示例小项目零钱通#

//用于日期格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//获取当前日期
date = new Date();
  1. 开发流程

    image-20240421152638569

  2. 改进

    image-20240421153841373

    image-20240421160957102

  3. 小项目截图

    image-20240421192308344

类变量与类方法#

类变量#

  1. 特点以及举例

    image-20240424093927872

    image-20240424093952362

  2. static变量的位置

    image-20240424102105732

​ jdk8以前是在方法区的静态域,jdk8及以后是在堆中的对应的class对象的最后。

  1. 共识

    image-20240424102510565

  2. 基本介绍

    image-20240424103143654

​ 类变量师随着类的加载二创建,所以即使没有创建对象实例也可以访问。

  1. 使用细节

    image-20240424104210426

    image-20240424104225317

类方法#

  1. 基本介绍

    image-20240424105246527

  2. 使用场景

    image-20240424105848088

  3. 注意事项

    image-20240424110801741

小结#

image-20240424113001758

main方法#

形式#

image-20240426100311709

注意#

代码块#

基本介绍#

image-20240427153222568

好处以及使用方法#

  1. 好处

    image-20240427153954589

  2. 使用方法

    image-20240427154023792

使用细节#

  1. 第一部分

    image-20240427170927504

  2. 第二部分

    image-20240428121913508

  3. 第三部分

    image-20240428122607092

  4. 第四部分

    image-20240428124550754

单例模式#

设计模式介绍#

image-20240429115619920

概述#

image-20240429115647558

饿汉式#

  1. 具体步骤

    image-20240429115758146

  2. 细节解释

    image-20240429115829260

懒汉式#

  1. 步骤

    image-20240429122758215

区别#

image-20240429123158137

总结#

image-20240429123316159

final关键字#

基本介绍#

image-20240429124714706

细节#

  1. 第一部分

    image-20240429125549859

  2. 第二部分

    image-20240429130022566

抽象类#

概念#

image-20240429132009525

image-20240429132054700

image-20240429132246130

细节#

  1. 第一部分

  2. 第二部分

    image-20240429133044416

  3. 第三部分

    image-20240429133203246

接口#

基本介绍#

image-20240430150352901

小结#

image-20240430150407999

image-20240430150431072

细节#

  1. 第一部分

    image-20240430152128791

  2. 第二部分

    image-20240502114853771

实现接口和继承类的区别#

image-20240502120244141

接口的多态#

image-20240502121039353

内部类#

基本介绍#

image-20240528103639257

基本语法#

image-20240528103658385

分类#

image-20240528103908931

局部内部类#

  1. 使用
  • image-20240530104842253

注意:

image-20240530104857628

  • image-20240530105447691

匿名内部类#

  1. 本质

    image-20240530111132600

  2. 使用举例

    image-20240531093329706

    image-20240531093359545

  3. 细节

    • image-20240531094727037

    • image-20240531094803891

成员内部类#

  1. 使用

    image-20240531101903122

    image-20240531102813159

    image-20240531102902022

    image-20240531103107945

静态内部类#

  1. 特点

    image-20240531103528206

    image-20240531104203860

    image-20240531104222064

    image-20240531104248636

内部类小结#

image-20240531104710273

枚举类#

如何创建枚举类#

image-20240627215804704

自定义枚举类小结#

image-20240627215902323

enum关键字实现枚举#

image-20240730213643199

注意事项#

image-20240831153326404

enum常用方法一览表#

image-20240831161119967

image-20240831171400661

小结#

image-20240831171257539

JAVA笔记(新)
https://lym0518.cn/posts/javanew/
作者
TeFantasy
发布于
2024-02-17
许可协议
CC BY-NC-SA 4.0