Java SE总结

一. java基础

1. 关键字

2. 集合部分

在这里插入图片描述

3. java基础

(1)标识符

标识符就是程序员在编写 Java 程序时,自定义的一些名字。
标识符命名规则:
1、标识符由字母、下划线、美元符或数字组成
2、标识符不能以数字开头,不能是关键字
3、标识符严格区分大小
4、标识符长度无限制

合法的标识符:ComputeArea、radius、area、$csdn _csdn、zg_csdn
注意:由于 Java 标识符严格区分大小写,所以 bengo 和 BenGo 是完全不同的两个标识符哦
非法标识符:class (class是关键字,标识符不能是关键字)、100java (标识符不能以数字开头)、Hello java (标识符由字母、下划线、美元符或数字组成,不包含空格)

(2)变量与常量

——成员变量(全局变量):
1、实例变量
2、静态变量

String name;// 成员变量(Member variables),也称为全局变量,对象的属性;成员变量也分为静态变量和实例变量
int weight = 45;// 实例变量(Instance variable)
static int age = 20;// 静态变量(Static variable)

——常量(final变量):
1、常量
2、静态常量

final double PI = 3.14;// 声明int类型常量,当定义的final变量为成员变量时,必须在定义时就设定它的初始值,否则将会提示编译错误。
 static final double HEIGHT = 180;// 常量/静态变量

(3)数据类型

——八种Java基本类型
字符类型:char
布尔类型:boolean
整数类型:byte、short、int、long
浮点数类型:float、double

char:16位,2字节,存储Unicode码,用单引号赋值。

boolean:1位,1/8字节(可为1、4字节,根据不同环境不同取值)只有true和false两个取值。

byte:8位,1字节,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,2字节,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,4字节,最大数据存储容量是2^32 -1,数据范围是-2^31 ~ 2^31-1。
long:64位,8字节,最大数据存储容量是2^64 -1,数据范围是-2^63 ~ 2^63-1。

float:32位,4字节,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F
double:64位,8字节,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加

(4)运算符

1、算数运算符
五种:加(+)、减(-)、乘(*)、除(/)、取模(%)

还有i++和++i的区别:

int i = 1;
System.out.println(i++);  //输出1
int i = 1;
System.out.println(++i);  //输出2

2、关系运算符
六种:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)

3、逻辑运算符
三种:逻辑与(&&)、逻辑或(||)和逻辑非(!)
Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。

4、位运算符
7种:按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)、无符号右移(>>>)

5、赋值运算符
在这里插入图片描述

6、条件运算符
条件运算符( ? : )也称为 “三元运算符”或“三目运算符”。
运算过程:如果布尔表达式的值为 true ,则返回 表达式1的值,否则返回 表达式2 的值。

(5)流程控制语句

1、顺序结构
就是从上至下执行的结构
2、选择结构
if、switch语句
3、循环结构
for(条件成立才可循环)、while(条件成立才可循环)、do…while(至少执行一次循环)

(6)方法

——方法的所有部分:
1、修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
2、返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
3、方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
4、参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
5、方法体:方法体包含具体的语句,定义该方法的功能。

方法定义之后,没有调用就不会执行;要想执行,一定要调用它。常见的有三种:
1、单独调用:这种方式无法使用方法的返回值。格式:方法名称(参数值);
2、打印调用:这种方式可以将方法的返回值直接打印。格式:3、System.out.println(方法名称(参数值));
3、赋值调用:这种方式可以将方法的返回值赋值给一个变量,注意变量的数据类型必须和方法的返回值类型对应。格式:数据类型变量名称= 方法名称(参数值)

(7)数组

1、一维数组

int data[] = new int[3];   //开辟了一个长度为3的数组

2、二维数组

int 对象数组data[][] = new int[行个数][列个数]
//定义一个二维数组如下:
int data[][] = new int[][] {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};

把这个二维数组打印出来如下:
data[0][0]=1、data[0][1]=2、data[0][2]=3、
data[1][0]=4、data[1][1]=5、
data[2][0]=6、data[2][1]=7、data[2][2]=8、data[2][3]=9、

(8)注释

/** 
*文档注释
*
*
**/

//单行注释

/*
多行注释
*/

4. 面向对象

(1)this与super关键字

——this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
this的用法在java中大体可以分为3种:

1、普通的直接引用:
这种就不用讲了,this相当于是指向当前对象本身。

2、形参与成员名字重名,用this来区分:

class Person {
    private int age = 10;
    public Person(){
    System.out.println("初始化年龄:"+age);
}
    public int GetAge(int age){
        this.age = age;
        return this.age;
    }
}
 
public class test1 {
    public static void main(String[] args) {
        Person Harry = new Person();
        System.out.println("Harry's age is "+Harry.GetAge(12));
    }
}     

运行结果:
初始化年龄:10
Harry’s age is 12
可以看到,这里age是GetAge成员方法的形参,this.age是Person类的成员变量。

3、引用构造函数:
这个和super放在一起讲,见下面。

——super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。super也有三种用法:

1、普通的直接引用:
与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

2、子类中的成员变量或方法与父类中的成员变量或方法同名:

class Country {
    String name;
    void value() {
       name = "China";
    }
}
  
class City extends Country {
    String name;
    void value() {
    name = "Shanghai";
    super.value();      //调用父类的方法
    System.out.println(name);
    System.out.println(super.name);
    }
  
    public static void main(String[] args) {
       City c=new City();
       c.value();
       }
}

运行结果:
Shanghai
China
可以看到,这里既调用了父类的方法,也调用了父类的变量。若不调用父类方法value(),只调用父类变量name的话,则父类name值为默认值null。

3、引用构造函数:
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

class Person { 
    public static void prt(String s) { 
       System.out.println(s); 
    } 
   
    Person() { 
       prt("父类·无参数构造方法: "+"A Person."); 
    }//构造方法(1) 
    
    Person(String name) { 
       prt("父类·含一个参数的构造方法: "+"A person's name is " + name); 
    }//构造方法(2) 
} 
    
public class Chinese extends Person { 
    Chinese() { 
       super(); // 调用父类构造方法(1) 
       prt("子类·调用父类”无参数构造方法“: "+"A chinese coder."); 
    } 
    
    Chinese(String name) { 
       super(name);// 调用父类具有相同形参的构造方法(2) 
       prt("子类·调用父类”含一个参数的构造方法“: "+"his name is " + name); 
    } 
    
    Chinese(String name, int age) { 
       this(name);// 调用具有相同形参的构造方法(3) 
       prt("子类:调用子类具有相同形参的构造方法:his age is " + age); 
    } 
    
    public static void main(String[] args) { 
       Chinese cn = new Chinese(); 
       cn = new Chinese("codersai"); 
       cn = new Chinese("codersai", 18); 
    } 
}

运行结果:
父类·无参数构造方法: A Person.
子类·调用父类”无参数构造方法“: A chinese coder.
父类·含一个参数的构造方法: A person’s name is codersai
子类·调用父类”含一个参数的构造方法“: his name is codersai
父类·含一个参数的构造方法: A person’s name is codersai
子类·调用父类”含一个参数的构造方法“: his name is codersai
子类:调用子类具有相同形参的构造方法:his age is 18

从本例可以看到,可以用super和this分别调用父类的构造方法和本类中其他形式的构造方法。
例子中Chinese类第三种构造方法调用的是本类中第二种构造方法,而第二种构造方法是调用父类的,因此也要先调用父类的构造方法,再调用本类中第二种,最后是重写第三种构造方法。

(2)封装

(3)继承

(4)多态

(5)面向对象思想

(6)类与对象

(7)成员变量和局部变量

(8)匿名对象

(9)构造方法

(10)抽象类

(11)接口

(12)内部类

二. java高级

1. 线程

2. 锁

3.JDK

4.反射

5.JVM

6.GC

7.IO和NIO、AIO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值