JavaSE学习记录

java入门

卸载JDK

  1. 删除java的安装目录
  2. 删除环境变量 java_home
  3. 删除path下关于java的目录
  4. 查看java -version

安装JDK

  1. 下载JDK8
  2. 修改安装路径
  3. 配置环境变量
    • 配置JAVA_HOME,地址为jdk地址
    • 配置path变量
  4. 检查 java -version

HelloWorld

java文件后缀为java
文件名和类名需保持一致,且首字母大写

 public class hello{
	public static void main(String[] args){
		System.out.print("Hello,World!");
	}
}

打开命令行

  • javac hello.java 编译文件,文件夹中出现.class文件
  • java hello 运行文件

IDEA安装

安装了旗舰版,用教育邮箱领了license

操作

  • psvm public static void main
  • sout System.out.println

Java基础

注释

Java中的注释有三种

  • 单行注释 //
  • 多行注释 /* */
  • 文档注释 /** */

标识符

数据类型

Java是强类型语言:要求变量的使用要严格符合规定,所有变量先定义后使用

Java类型分为两种类型:基本类型和引用类型

long类型在数字后加L
float类型在数字后加F
字符char用单引号,字符串string用双引号

浮点数 有限 而且是离散的

最好完全避免使用浮点数进行比较

类型转换

类型 高-----------低
double float long int (short,char,byte)

强制转换

高 → 低

自动转换

低 → 高

数字可以用下划线分割
数字可以用下划线分割

变量

局部变量
实例变量
类变量: static

常量

final 修饰符

运算符

整数型运算有long结果为long,无long都为int

字符串连接问题

在这里插入图片描述

包机制

包的作用相当于文件夹

一般利用公司域名倒置作为包名

DOC注释

IDEA 中Javadoc注释教学

Java流程控制

用户交换Scanner

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据

next()以空格为结束符
nextline()以enter为结束符

用完Scanner要记得关掉

scanner.close();

顺序结构

选择结构

  • if单选
  • if双选
  • if多选
  • 嵌套的if
  • switch多选择

反编译 java -----class(字节码文件) -----反编译(IDEA)
项目结构 -------找到class文件

循环结构

  • while循环
  • do…while循环
  • for循环
  • 增强型for循环:主要用来数组

Java方法

方法的定义

方法包含一个方法头和一个方法体

修饰符 返回值类型 方法名 (参数类型 参数名){
方法体
return 返回值;
}

return 0//终止方法

Java都是值传递

方法的重载

方法的重载规则

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不同
  • 仅返回类型不同不足以成为方法的重载

可变参数

在方法声明中,在指定参数类型后加一个省略号(…)
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。

递归

递归是一种思想的学习,基数太大不建议使用

Java数组

数组声明创建

数组变量声明

int[] num;//首选
int num2[];

Java语言中使用new操作符来创建数组

dataType[] arrayRefVar = new dataType[arrySize];

获取数组长度 arrays.length

Java内存分析

堆:存放new的对象和数组
栈:存放基本变量类型
方法区

数组初始化

  • 静态初始化:创建+赋值
  • 动态初始化:先创建后赋值
  • 默认初始化

数组的四个基本特点

  • 长度是确定的,数组一旦创建,大小不可改变
  • 元素必须类型相同
  • 其元素可以是任何数据类型
  • 数组变量属引用类型,数组也可以被看成对象。数组本身就是对象,对象是在堆中的,数组就在堆中

数组使用

  • For-Each循环:array.for
  • 数组作方法入参
  • 数组作返回值

增强for循环,在不需要下标时适用

多维数组

看成数组的数组

Arrays类

学会看源码

我的arrays.toString有问题

稀疏数组

面向对象编程

Java的核心思想就是OOP

OOP 面向对象编程
属性+方法 = 类
宏观上面向对象,微观上面向过程

面向对象的本质就是:以类的方式组织代码,以对象组织数据

对象是具体的,类是抽象的

三大特性

  • 封装
  • 继承
  • 多态

Static

静态方法可以直接调用,非静态方法需要实例化后再调用

值传递和引用传递

Java都是值传递
引用传递:对象,本质还是值传递

类与对象的关系

一个项目应该只存在一个main方法

创建对象

new
一个类中:属性+方法
this 代表当前类

构造器

一个类即使什么都不写,也会存在构造器

类中的构造器也叫构造方法,是在进行创建对象的时候必须要调用的。且有两个特点:

  • 必须和类的名字相同
  • 必须没有返回类型,也不能写void

构造器作用:

  1. 使用new关键字,本质是在调用构造器
  2. 构造器一般用来初始化值

定义了有参构造后需要显示的定义一个无参构造

Alt + Insert 自动生成构造器

内存分析

方法和引用对象在栈中,new的东西在堆中

封装

设计追求:“高内聚,低耦合”

属性私有 get/set

继承

extends:子类继承父类,就会拥有父类的全部方法(修饰符为public)

Java中类只有单继承,没有多继承

Super

调用父类构造器,必须要在子类构造器第一行(默认调用父类)

方法重写

父类的引用指向子类

//方法的调用只和左边,定义的数据类型有关
A a = new A();
a.test();//A

B b = new A();
b.test();//B

override 重写

非静态方法才能重写
重写需要有继承关系,子类重写父类的方法

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符:范围可以扩大但不能缩小 public>Protected>Default>private
  4. 抛出的异常:范围可以缩小但不能扩大

多态

多态注意事项:

  • 多态是方法的多态,属性没有多态
  • 父类和子类,有联系
  • 存在条件:继承关系,方法需要重写,父类引用指向子类对象

方法不能重写的情况

  1. static 方法属于类,不属于实例
  2. final 常量
  3. private方法
instanceof
System.out.println(x instanceof y);
static

静态代码块>匿名代码块>构造函数

静态导入包

抽象类

abstract
抽象类的所有子类都必须要实现他的抽象方法,除非子类为抽象类

Java中类只能单继承,但接口可以多继承

接口

接口:只有规范,作用是约束和实现分离
关键字 interface
implement 实现接口
接口中的所有定义其实都是抽象的

异常机制

Error通常是灾难性的错误
Exception通常是可以被程序处理的

异常处理机制

  • 抛出异常
  • 捕获异常

异常处理五个关键字:
try、catch、finally、throw、throws

Ctrl + Alt + T

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值