Java基础


一、修饰符

Java语言提供了很多修饰符,主要分为以下两类:

  • 访问修饰符
  • 非访问修饰符

1.访问控制修饰符

Java支持4种不同的访问权限:

  • default(即默认,什么也不写):在同一个包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • private:在同一个类中可见。使用对象:变量、方法。注意:不能修饰类(外部类)
  • public:对所有类可见。使用对象:类、接口、变量、方法。
  • protected:对同一包内的类和所有子类可见。使用对象:变量、方法。注意:不能修饰类(外部类)。
修饰符当前类同一包内子孙类(同一包)子孙类(不同包)其他包
publicYYYYY
protectedYYYY/N*N
defaultYYYNN
privateYNNNN

*受保护的访问修饰符-protected

  • 子类与基类在同一包中:被声明为protected的变量、方法和构造器能被同一个包中的任何其它类访问;
  • 子类与基类不在同一包中:在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。

protected可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外)。

2.非访问修饰符

  • static修饰符,用来修饰方法和类变量。
  • 静态变量:static关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只拷贝一份。静态变量也称之为类变量。局部变量不能被声明为static变量。
  • 静态方法:static关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据。
  • final修饰符,用来修饰类,方法和变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  • final变量:final表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被final修饰的实例变量必须显式指定初始值。*final修饰符通常和static修饰符一起使用来创建类常量。
  • final方法:父类中的final方法可以被子类继承,但不能被子类重写。
  • final类:final类不能被继承,没有类能够继承final类的任何特性。
  • abstract修饰符,用来创建抽象类和抽象方法。
  • 抽象类:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。*一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类必须声明为抽象类。抽象类可以包含抽象方法和非抽象方法。
  • 抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类一提供。 *抽象方法不能被声明成final和static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。抽象方法的声明以分号(;)结尾。
  • synchronized和volatile修饰符,主要用于线程的编程。
  • synchronized关键字声明的方法同一时间只能被一个线程访问。synchronized修饰符可以应用于四个访问修饰符
  • volatile修饰的成员变量在每次线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 一个volatile对象的引用可能是null。

二、运算符

自增(++)自减(–)运算符

1、前缀自增自减法(++a,–a):先进行自增或者自减运算,再进行表达式运算。
2、后缀自增自减法(a++,a–):先进行表达式运算,再进行自增或者自减运算。

实例:理解 -->“a = a++”等效于“ int b = a++;a=b;”
在这里插入图片描述

条件运算符( ? : )
条件运算符也称为三元运算符。

variable x = (expression) ? value if true : value if false

instanceof运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。


三、Number & Math &Character 类

在这里插入图片描述
Java Math类

Java的Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根…
Math的方法都被定义为static形式,通过Math可以在主函数中直接调用。

Java Charcter类
Character类用于对单个字符进行操作。Character类在对象中包装一个基本类型的char的值。


四、String类

1.创建字符串
String创建的字符串存储在公共池中,而new创建的字符串对象在堆上:

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

在这里插入图片描述
2.字符串长度
String类的一个访问器方法是length()方法,它返回字符串对象包含的字符数。
3.连接字符串
可以对字符串常量使用concat()方法:string1.concat(string2);
更常用的是使用’+'操作符来连接字符串。


五、StringBuffer和StringBuilder

当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。
和String类不同的是,Stringbuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。在这里插入图片描述
在使用StringBuffer类时,每次都会对StringBuffer对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用StringBuffer。
StringBuilder类在Java5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问)。


六、数组

1.声明数组变量

dataType[] arrayRefVar;   // 首选的方法 
或
dataType arrayRefVar[];  // 效果相同,但不是首选方法

2.创建数组
Java语言使用new操作符来创建数组:

arrayRefVar = new dataType[arraySize];

数组变量的声明,和创建数组可以用一条语句完成:

dataType[ ] arrayRefVar = new dataType[arraySize];

dataType[ ] arrayRefVar = {value0,value1,…,values};

3.处理数组
数组的元素类型和数组的大小都是确定的,所以当处理数组元素的时候,我们通常使用基本循环或者for-each循环。

数组可以作为参数传递给方法。
数组作为函数的返回值。

4.多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组:

type[ ][ ] typeName = new type[ typeLength1 ][ typeLength2 ];

5.Arrays类
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:

  • 给数组赋值:通过fill方法。
  • 对数组排序:通过sort方法,按升序。
  • 比较数组:通过equals方法比较数组中元素值是否相等。
  • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

七、日期时间

java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。
第一个构造函数使用当前日期和时间来初始化对象。

Date( )

第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

Date( long millisec )

1.获取当前日期时间
使用Date对象的toString方法来打印当前日期和时间。
2.日期比较

使用getTime( ) 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
使用方法before( ),after( ) 和equals( )。
使用compareTo( )方法,它是由Comparable接口定义的,Date类实现了这个接口。

3.使用SimpleDateFormat格式化日期
SimpleDateFormat允许用户自定义日期时间格式来运行。

SimpleDateFormat ft = new SimpleDateFormat( “yyyy-MM-dd hh:mm:ss” );

4.Calendar类
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
在这里插入图片描述


八、xxx


八、xxx


八、xxx


总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值