Java 的八种类型(直接上图,写一下太麻烦):
Java变量(说白了就是定义变量谁可以使用)
局部变量(谁定义的谁使用)
实例变量(谁想用就用)
类变量(当前创建的类能使用,不切换其他类你随便特点:Static)
Java:修饰符(给出准确解释,不在翻译)
访问修饰符
默认的,也称为default,在同一包内可见,不使用任何修饰符。
私有的,以private修饰符指定,在同一类内可见。
共有的,以public修饰符指定,对所有类可见。
受保护的,以protected修饰符指定,对同一包内的类和所有子类可见。
访问修饰符,主要用于控制继承,
后面写分装继承多态的时候进行详细解释
注意:
父类中声明为public的方法在子类中也必须为public。
父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private。
父类中默认修饰符声明的方法,能够在子类中声明为private。
父类中声明为private的方法,不能够被继承。
非访问修饰符
static修饰符,用来创建类方法和类变量。
1.静态变量:
static关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。静态变量也被称为类变量。局部变量不能被声明为static变量。
2.静态方法:
static关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。
Final修饰符:
final修饰符,用来修饰类、方法和变量,final修饰的类不能够被继承,修饰的方法不能 被继承类重新定义,修饰的变量为常量,是不可修改的。
1.修饰变量:
final变量能被显式地初始化并且只能初始化一次。被声明为final的对象的引用不能指向不同的对象。但是final对象里的数据可以被改变。也就是说final对象的引用不能改变,但是里面的值可以改变。
final修饰符通常和static修饰符一起使用来创建类常量。
2.修饰方法:
类中的Final方法可以被子类继承,但是不能被子类修改。
声明final方法的主要目的是防止该方法的内容被修改。
abstract修饰符,
用来创建抽象类和抽象方法。抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。synchronized和volatile修饰符,主要用于线程的编程。
1.修饰类:
抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
抽象类可以包含抽象方法和非抽象方法
2.修饰方法:
抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成final和static。
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
抽象方法的声明以分号结尾,例如:public abstract sample();
synchronized修饰符(只能被一个线程访问)
synchronized关键字声明的方法同一时间只能被一个线程访问。Synchronized修饰符可以应用于四个访问修饰符。
Transient(预处理等等)
序列化的对象包含被transient修饰的实例变量时,java虚拟机(JVM)跳过该特定的变量。
该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型
Volatile修饰符(针对变量进行的操作)
修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。一个volatile对象引用可能是null。
运算符:
算术运算符
关系运算符
位运算符逻辑运算符(注意:&&和& ||和|)
逻辑运算符(注意:&&和& ||和|)
赋值运算符
其他运算符
instanceOf 运算符(判断是不是你规定的类型--针对实列变量)
String name = 'James';
boolean result = name instanceOf String;(name是String类型)
判断:
循环
while循环
do…while循环
for循环
判断
if语句
switch语句
Number类
- Number(对一些数据类型,根据自己的内置,分装,解开支持各种用(这也是为什么刚学习的时候,我们定义类型都是int,long.而后面做项目的时候就用到integre了))
包装类有Integer、Long、Byte、Double、Float、Short(在需要使用对象,而不是内置数据类型(你创建的那些玩意))
- Math(基本函数,指数,对数,平方根,三角函数)
部分方法:
Character类(和为什么用intergre一个道理)
String类型
String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了。 如果需要对字符串做很多修改,那么应该选择使用StringBuffer & StringBuilder 类。
字符串长度length()方法
String拼接方式
- String1.concat(String2);
- String1+String2;