javaSE

一 基本语法

1. 开发环境

一.JDK下载与安装

1.官网下载: https://www.oracle.com/java/technologies/javase-downloads.html

二.配置环境变量

在这里插入图片描述Path别忘了配置下面是path的环境变量
在这里插入图片描述

什么是JVM.JDK,JRE

jvm是虚拟机
jdk是开发工具包
jre是运行环境
** 三者间的关系是**
JDK包含JRE,而JRE包含JVM

成功案列

win加r键输入cmd:完事输入java或者javac
看看有没有输出一堆东西

2. 数据类型

一 基本数据类型

整数型: byte【1字节】, short【2字节】, int【4…】, long【8…】
浮点数: float【4】,double[【8】
字符型:char【2】
布尔型:boolean(true)真,(false)假

二 引用数据类型

类 class
接口 interface
数组 [ ]
枚举 enum
注解 annotation

三 数据类型转换

自动类型转换 :容量小的数据类型转为容量大的数据类型;
强制类型转换 : 强制转换数据类型 损失精度

3. 常量与变量

一.变量

在这里插入图片描述
变量的分类和作用域
变量有三种类型:局部变量、成员变量(也称为实例变量) 和静态变量。
在这里插入图片描述
·
局部变量:方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。
在这里插入图片描述
波浪线不要在意 因为得给a赋值 不赋值编译过不去.
·
成员变量:
方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。

二.常量

final修饰(也称最终变量不可变)
常量在声明时必须赋初值,赋值后不能再修改值
常量名通常用全大写字母表示
声明时需要添加final或static final类型修饰符,例如:private final int PI=3.141596; //常量,类加载时确定或者更靠后确定值
·

4.运算符

1关系运算符

大于
小于
== 等于
!= 不等于
大于等于>=
小于等于<=

2逻辑运算符

在这里插入图片描述
建议用短路与 短路或

(题外)scanner键盘输入

在这里插入图片描述

5. 条件循环语句

if(布尔表达式){ 单分支结构 }
if(){ } else(){ 双分支结构 }
① 初始化条件
② 循环条件 —>是boolean类型
③ 循环体
④ 迭代条件
for( 初始化条件;循环条件 ;循环体){ 迭代条件
}
for(int i ; i<10;i++){ sout(" 你好 ") } 这样打了十句你好
while( 布尔表达式 ) { 循环内容 }
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
do。。。while至少执行一次
switch( 表达式 ){
case value :
语句
break; //可选
break:循环结构中 结束当前循环 关键字后面不能声明执行语句
continue: 循环结构中 结束当次循环

6. 数组

工具 Arrays

一数组格式

数据类型 【】 名称 =new 数据类型 【】

二 数组的两种常见初始化方式:

动态初始化(指定长度) int[] arr = new int[3]; 3表示这个数据有多大空间
静态初始化(指定内容) int[] arr = new int[]{1,2,3,4,5};

三 程序执行流程:

动态初始化为例 int[] arr = new int[3]
main方法进入方法栈执行
创建数组,JVM会在堆内存中开辟空间,存储数组
数组在内存中会有自己的内存地址,以十六进制数表示
数组中有3个元素,默认值为0
JVM将数组的内存地址赋值给引用类型变量array
变量array保存的是数组内存中的地址,而不是一个具体数值,因此称为引用数据类型。

7.算法

一 冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

二. 二分查找法

不确定以后再定
大概就是 : 数值折半 打个比方 有100个数 你找56 就得把这个数折半 变成50 找比50大的数 这就快了

8. 方法

一 语法格式

修饰符 返回值类型 方法名(参数类型 参数名){
方法体;
return 返回值;
}
方法重载; 重载就是在一个类中,有相同的函数名称,但形参不同

9. 递归

    递归就是A方法调用A方法,自己调用自己。
   递归结果包括两部分:
    1,递归头:什么时候不调用自身的方法。如果没有头,程序没有出口,将陷入死循环。
  2,递归体:什么时候需要调用自身的方法。

10. JVM内存模型

JMM是一套多线程读写共享数据时,对数据的可见性,有序性和原子性的规则
原子性 : 要么全部执行成功,要么全部不执行,不会出现执行一半的情况
可见性 : 指的是当一个线程修改了某个共享变量的值,其他线程是否能够马上得知这个修改的值。

在这里插入图片描述

11. 命名规范

在这里插入图片描述

二 面向对象

一 类

一 类是什么

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
类:我们叫做class。
对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。
类有 属性 方法 构造器
属性的定义 : [修饰符] 属性类型 属性名 =【默认值】
方法的定义 [修饰符] 方法返回值类型 方法名(形参列表) {
n条语句 }
构造器定义: [修饰符] 类名(形参列表) { n条语句 }

二 封装

封装的实现—使用访问控制符

private、 default、 protected、public。
我们一般用private 和 public

三 继承 extends

继承有两个主要作用:
1 代码复用,更加容易实现类的扩展
2.方便建模
使用要点 :子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。
方法的重写 override
子类重写父类的方法,可以用自身行为替换父类行为。重写是实现多态的必要条件。

instanceof 运算符
instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象
时,返回true;否则,返回false。
final关键字的作用:
修饰变量:被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。
final int MAX_SPEED = 120;
修饰方法:该方法不可被子类重写。但是可以被重载!
final void study(){}
修饰类:修饰的类不能被继承。
比如:Math、String等。
final class A {}

四 多态

多态指的是同一个方法调用,由于对象不同可能会有不同的行为。比如(吃) 我们都是吃饭可是各国人吃饭的方式不一样

五 构造器

构造器定义: [修饰符] 类名(形参列表) { n条语句 }

六 this关键字

普通方法中,this总是指向调用该方法的对象。
构造方法中,this总是指向正要初始化的对象。

七 抽象 abstrac

·
抽象方法
1.使用abstract修饰的方法,没有方法体,只有声明。
2.定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。

抽象类:
包含抽象方法的类就是抽象类。
通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。
}
抽象类的使用要点:
1.有抽象方法的类只能定义成抽象类
2.抽象类不能实例化,即不能用new来实例化抽象类。
3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
4.抽象类只能用来被继承。
5.抽象方法必须被子类实现。

八接口 interface

声明格式:
[访问修饰符]interface接口名[extends父接口
1,父接口2…]{
常量定义;
方法定义;
}

九 内部类

十 匿名对象

十一 代码块

静态初始化块 构造方法用于对象的普通属性初始化。静态初始化块,用于类的初始化操作,初始化静态属性。在静态初始化块中不直接访问非static成员。

static静态初始化块

public  class  estStatic2  {
static   String company; //公司名称
static  {   
System.out.println("执行类的初始化工作");
company  = "北大 青鸟";
printCompany();
}
public  static  void  printCompany(){
System.out.println(company);
}
public  static  void   main(String[ ] args) {
}
}

十二 重载重写

下载API文档

如何下载API文档
1.下载地址,点击进入:
https://www.oracle.com/java/technologies/javase-jdk8-doc-downloads.html

链接:https://pan.baidu.com/s/1IhueqOSyF9UQ-bzgqkBk2w
提取码:2n2n

三 常用类

1 包装类
包装类基本知识

Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数
据类型就不是对象。
但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。
比如:将基本数据类型存储到Object[ ]数组或集合中的操作等等。
在这八个类名中,除了Integer和Character类以外,其它六个类的类名和基本数据类型一致,
只是类名的第一个字母大写而已。

包装类的用途

对于包装类来说,这些类的用途主要包含两种:
1.作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[ ]、集合等的操作。
2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)

自动装箱和拆箱

自动装箱(autoboxing)和拆箱(unboxing):将基本数据类型和包装类自动转换。

2 字符串相关类

字符串相关类
String类代表不可变的字符序列
StringBuilder类和StringBuffer类代表可变字符序列。
StringBuffer和StringBuilder都是可变的字符序列。
StringBuffer线程安全,做线程同步检查,效率较低。
StringBuilder线程不安全,不做线程同步检查,因此效率较高。建议采用该类。

3 时间处理相关类 Date
4 其他类

Random随机数类
File类:java.io.File类:代表文件和目录,用于:读取文件、创建文件、删除文件、修改文件。

四 异常 Exception

try-catch-finally语句块的执行过程详细分析:

程序首先执行可能发生异常的try语句块。如果try语句没有出现异常则执行完后跳至
finally语句块执行;如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。catch语句块可以有多个,分别捕获不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally语句是可选的,如果有的话,则不管是否发生异常,finally语句都会被执行。

五 集合(容器)

一 Java 集合可分为 Collection 和 Map 两种体系

**Collection接口:**单列数据,定义了存取一组对象的方法的集合
List:元素有序(指的是存储时,与存放顺序保持一致)、可重复的集合
Set:元素无序、不可重复的集合
在这里插入图片描述
Map接口:双列数据,保存具有映射关系“key-value对”的集合
重写 equals() 方法的基本原则:写equals方法的时候一般都需要同时复写hashCode方法。参与计算hashCode的对象的属性也应该参与到equals()中进行计算。

六 IO流

七 反射

八 多线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值