Java 基础学习

来源:互联网 发布:js 字符串split 编辑:程序博客网 时间:2024/05/29 19:24

1:标识符:

可以有字母、数字、下划线和美元符号组成,其他字符不合法,数字不能放在开头;

标识符不能是关键字、保留字;

JAVA中标识符区分大小写;

变量名一般的写作习惯:第一个单词首字母小写,后面的单词首字母大写,命名长度尽量短,尽量容易知道它的意思。

2:JAVA类型说明:

JAVA是一种强类型的高级语言,所有的变量必须有类型,也就是必须有属性。

JAVA中定义了两种类型的数据,分别是基本类型和引用类型,基本数据类型中存放的是数据本身,而引用类型中存放的是数据的内存地址。

3:JAVA类型转换:

在JAVA自动类型转换的时候,内存空间大的类型可以兼容内存小的,比如说double类型就可以兼容int类型,可以自动转换,但是int类型就不能兼容double类型。

如果需要完成这种逆向的转变,必须要使用强制类型转换。但是在强制类型转换的过程中,很容易丢失数据,比如说double像int类型转换时,会丢弃小数位。

4:JAVA 中的常量:

JAVA中也提供了常量值,不允许系统操作过程中对他进行改动,使用final作为标记。比如说  final String NAME=“maxwell”; 

需要注意的是,常量一般用大写字母作为变量名。

5:关于注释的一些说明:

单行注释://

多行注释:/*......*/

文本注释:/**......*/

       @author 标明开发该类模块的作者
       @version 标明该类模块的版本
       @see 参考转向,也就是相关主题
       @param 对方法中某参数的说明
       @return 对方法返回值的说明
       @exception 对方法可能抛出的异常进行说明

6:关于Java中的比较运算:

JAVA中的比较运算法只支持两边操作数是数值类型。

7: 关于返回值:

对于某个方法,当类型为void时,不能有返回值,也就是说不能有return。

方法的返回值只有一个。

返回值的类型与方法定义中提到的类型必须兼容。


-------------------------------------------------------------------------------------------------------------------------------------------------------------


1:类

用来描述对象的属性和方法,类似于一个模子。类是一个抽象的概念,只是一个模板,对象是实体的,实际占用内存空间的,客观存在的。

2:flotation类型赋初值

float类型在进行实例变量赋值时,需要在结尾加上f,否则就会出现默认为double的类型。

3:成员变量和局部变量

成员变量是定义在类中的,定义了类中有什么,有哪些属性。

局部变量是定义在类的方法中的,其作用是在方法中临时保存数据。

二者的作用域不同。初始值也不同,成员变量有默认初始值,而局部变量没有。

4:关于构造方法:

定义在Java中,用来初始化类的一个方法。当没有定义时,系统会默认为类构造一个无参的构造方法。当类内有定义构造方法是,系统就不会为其分配构造方法。

名称与类名相同,没有返回值。

与普通的方法相同,构造方法也可以重载。

对构造方法的传值可以进行一定的判断,用一个if语句进行判断,在构造方法的方法体中进行赋值的判断的设计。避免有参构造方法的传值出错的问题。

5:关于static变量:

一个类可以用来定义很多的实例对象,每个实例对象都有自己的变量属性和属性值,分别占用不同的内存。但是当我们希望所有的实例对象都能够共享某一个变量时,也就是说对于所有的对象,这个变量是唯一的,所有的对象都可以调用,只占用一份内存单元,那么这个对象就可以用static来修饰完成。

被static修饰的成员称为内部成员变量,或者称之为静态成员变量,它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问。

静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!也就是说只要该类装载进去,静态成员变量就会有赋值。而不需要进行实际的对象定义。

6:关于static方法:

和静态成员变量类似,可以定义静态方法。

静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。

在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。

7:关于static的静态初始化块:

在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

8:类的三大特性:

封装、继承、多态。

9:关于包:

同一个包里不能有两个相同的类。可以设计同级包,也可以设计嵌入包。当设计嵌入包之后,可以在嵌入包内设计相同名称的类。

10:访问限制符:

private:只能在本类内使用。

默认:可以在同一个包内使用。

protected:可以在本类和其子类内使用。

public:任意的调用。

11:内部类:

内部类是指定义在一个类的内部的类,包含内部类的类又称为外围类、外部类。

内部类提供了更有效的封装,不允许同一个包内的其他类访问该内部类。同时,内部类的方法可以访问外围类的所有变量,包括私有变量。但是外围类不能访问内部类的成员。

尽管内部类的所有功能外围类也可以实现,但是有时候用内部类会更方便。

内部类主要可以分为:成员内部类、静态内部类、方法内部类、匿名内部类。

12:Java中的继承:

Java的继承是单继承。(每个人只能有一个亲爹)

继承以后子类拥有父类的所有公开属性和方法。不能是private的。

--- class 子类 extend 父类{。。。}

当子类继承了父类的方法,但是此方法不合适,此时可以在子类中重写方法。不过要注意,在子类中重写方法时,方法名、返回值类型、参数类型和个数都要与父类方法一致。

继承完成以后,先初始化父类,后初始化子类。创建对象以后,先执行属性的初始化,后执行构造方法中的初始化。

13:关于final关键字:

final表示最终,最后的。可以修饰类、方法、属性和变量。

final修饰类:该类不能被继承了,已经是最底层的类,最后的类了。

final修饰方法:该方法不能被重写,也就是说不能被覆盖。

final修饰属性:该属性必须进行给它赋值,而不能使用默认赋值的方法。或者是在构造方法中给它赋值。

final修饰变量:该变量只能被赋值一次,也就是说变成了常量。

14:关于super关键字:

这个关键字用在对象中,表示父类的对象。

15:关于Object类:

这个类是所有类的父类,如果没有显式定义一个类继承与另一个类,那么Object类就是这个类的直接父类。

Object类中有些默认的方法,适用于所有子类。比如说toString。当没有重写toString方法的时候,系统默认继承Object类中的toString方法,用print打印的对象是对象的地址。

16:关于抽象类:

A、某父类只知道子类应该包含哪些方法,但是不知道这些方法会怎么完成。此时会用到抽象类。

B、多个具有相同特征的类抽象出来一个属性,定义成一个抽象类。

使用关键字abstract来实现抽象类,抽象类只需要定义方法,而不需要实现,在定义方法的时候,由于没有方法体,所以是不需要使用大括号的,只需要用分号结尾。基于这一点,限制了抽象类是不能定义对象的。

17:关于接口:

接口用关键字interface来实现,接口通常是用来被继承,被实现的,通常定义为public类型。

接口中的变量都是常量,通常都用public static final来修饰。即使不加,系统也会自动添加。

接口中的方法只能是抽象方法,通常用public abstract来修饰。即使不加,系统也会自动添加。

通常用类来实现接口,一个类可以实现一个或者多个接口,使用关键字implements来实现。可以多重继承是接口和父类的主要区别。

如果要继承父类,则父类必须写在接口之前。语法规则是:class 类名 extends 父类 implements 接口1,接口2,等等



-------------------------------------------------------------------------------------------------------------------------------------------------------------


1:关于异常

        异常都继承于一个类,这个类称之为throwable类,这个类有两个子类,分别是error类和Exception类。其中Error是硬伤,是没有办法处理的,当它出现时程序就彻底完蛋了。而Exception则是我们可以加以控制的异常。

        Exception异常又可以分为两类,一类是非检查异常(运行时异常RuntimeException),另一类是检查异常。非检查异常一般包括空指针异常(NullPointerException)数组下标越界(ArrayIndexOutOfBoundsException)、类型转化异常(ClassCastException)、算数异常(ArithmeticException)。而检查异常大致包含两种,分别是文件异常(IOException)和SQL异常(SQLException)。

2、异常处理

try{    //一些有可能抛出异常的方法}catch(异常的种类){             //捕获特定的异常    //处理该异常的代码块}final{    //最终要执行的代码<span style="white-space:pre"></span>}

        当try块儿内的方法发生异常以后,首先该方法会终止执行,然后程序将控制权交付给catch块儿中的异常处理程序。注意catch块儿是可以多重使用的。但是catch块儿中的异常一定要按照先子类后父类的顺序去完成。

3、异常抛出


4:关于字符

对比两个字符串时,用“==”比较的是变量的内存首地址是否相同,也就是判断是否为同一个变量。如果要比较两个变量的内容是否相同,需要使用equal()方法。

5:常用的一些字符操作函方法



6:String类和StringBuffer类、StringBuilder类之间的区别

        String类用来存储字符串的时候,存储变量具有不可变性,不允许系统对它进行改变,是一个常量。而StringBuilder类则是生成一个可变的字符串存储空间,相当于定义了一个字符串变量,可以将这个变量内存空间的存储内容进行改动。而StringBuffer和StringBuilder类似,只是StringBuffer是线程安全的,而StringBuilder并没有实现线程安全。

下面来看几个StringBuilder类的常用方法:


7:Java中的包装类

把对象当成一个类来处理,理解成装箱的操作。因为基本数据类型不具有对象的特性,不能使用调用方法,功能比较简单。引入包装类就是为了让基本数据类型具备对象的特性,这样就可以像操作对象那样来操作基本数据类型。常见的几种包装类如下:


        包装类的使用提供了两种类方法,首先是不同数据类型之间的包装类的转换,其次是String类和基本数据类型之家的转换。下面的表中给出了几种包装类的常用方法:


        把基本数据类型转变成包装类,使之具有对象的特征的过程称之为装箱,具体有个例子如下:


        而相对应的,把包装类对象转换成基本数据类型的过程称之为拆箱,有例子如下:


        把基本数据类型转换成字符串的操作方式有三种,分别是:使用包装类的 toString() 方法;使用String类的 valueOf() 方法;用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串。具体的例子如下:


        同样,将字符串转换成基本数据类型也有两种方法,分别是:调用包装类的 parseXxx 静态方法;调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱。具体的例子如下:


8:关于swing界面中框架和容器的区别

        容器是土壤..框架是架子,没土,植物不能生长,没架子,植物能长,但是长的不好看

9:使用Date类来获取当前时间

        使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间。Date类位于java.util包中,默认输出格式为(周几、月份、日期、时间、时区、年份)。一般来说,这种格式并不是我们想要的,可以使用SimpleDateFormat类来改变文本格式。

        但是因为Date类只能表示当前时间,不能设置其他的一些功能,所以不建议使用,推荐使用Calendar类。

        java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间。具体的例子如下所示:


10:关于Math类中的方法的使用

        




-------------------------------------------------------------------------------------------------------------------------------------------------------------


0 0