1、数据类型按容量大小排序为:Byte,short,char-int-long-float-doubleByte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型2. 容量大的暑假类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。3. 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。+(-):在前时先运算再取值;在后时先取值再运算。当“=”两侧数据类型不一致时,可以使用默认类型转换或使用强制类型转换原则进行处理,可以将整型常量赋值给byte,short,char等类型变量,而不
2、需要进行强制类型转载,只要不超出其表数范围。字符串连接符:1.“+”除用于算术加法运算外,还可用于对字符串进行连接操作;2.“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串,然后再进行连接;3.当进行打印时,无论任何类型,都自动转为字符串进行打印。Break语句用于终止某个语句块的执行,用在循环语句体中,可以强行退出循环;Continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程;Java中switch语句只能探测int类型值。Java语言中使用下述形式调用方法:对象名.
3、方法名(实参列表)Java中进行函数调用中传递参数时,遵循值传递的原则:基本类型传递的是该数据值本身,引用类型传递的是对对象的引用,而不是对象本身。类可以看成一类对象的模板,对象可以看成该类的一个具体实例。构造函数与类同名且没有返回值。构造函数是定义在Java类中的一个用来初始化对象的函数。创建对象时,使用构造函数初始化对象的成员变量。方法的重载:指一个类中可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。this关键字:1. 在类的方法定义中使用的this关键字代表使用该方法的对象的引用;2. 当必须指出当前使用方法的对象是谁时要使用this;3. 有事使
4、用this可以处理方法中成员变量和参数重名的情况;4. this可以看作是一个变量,它的值是当前对象的引用。Static关键字:1. 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份;2. 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所有在static方法中不可以访问非static的成员。静态方法不再是针对于某个对象调用,所以不能访问非静态成员。3. 可以通过对象引用或类名(不需要实例化)访问静态成员。Java只支持单继承,不允许多继承:一个子类只能有一个基类,
5、一个基类可以派生出多个子类来。对于classd 的权限修饰只可以用public和default。1. public类可以在任意地方被访问;2. default类只可以被同一个包内部的类访问。方法的重写:1. 在子类中可以根据需要对从基类中继承来的方法进行重写;2. 重写方法必须和被重写方法具有相同方法名称,参数列表和返回类型;3. 重写方法不能使用比被重写方法更严格的访问权限。继承中的构造方法:1. 子类的构造的过程中必须调用其基类的构造方法;2. 子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法;使用this(argument_list)调用本类的另外
6、的构造方法;如果调用super,必须写在子类构造方法的第一行;3. 如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构造方法。4. 如果子类的构造方法中既没有显式调用基类构造方法,而基类中又又没有无参的构造方法,则编译出错。Object类是所有Java类的根基类;Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息;在进行String与其他类型数据的连接操作时,将自动调用该对象类的toString()方法;Object类中定义有public String equals(Object obj)方法
7、,提供定义对象是否“相等”的逻辑,Object的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false;对象转型(casting):1. 一个基类的引用类型变量可以“指向”其子类的对象;2. 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法);3. 可以使用引用变量instanceof类名来判断该引用类型所“指向”的对象是否属于该类或该类的子类;4. 子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting).多态:1. 要有继承;2. 要有重写;3. 父类引用指向子类对象。抽象类
8、:1. 用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法;2. 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写;3. 抽象类不能被实例化;4. 抽象方法只需声明,而不需实现。final关键字:1. final的变量的值不能够被改变;2. final的方法不能够被重写;3. final的类不能够被继承。接口:1. 接口(interface)是抽象方法和常量值的定义的集合;2. 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现;3. 接口特性:(1) 多个无关的类
9、可以实现同一个接口;(2) 一个类可以实现多个无关的接口;(3) 与继承关系相似,接口与实现类之间存在多态性;(4) 接口声明属性默认为public static final的;也只能是public static final的;(5) 接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的;(6) 接口可以继承其他的接口,病添加新的属性和抽象方法。异常:1. Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程成为抛出(throw)异常;2. 当Java运行时系统接受到异常对象时,会寻找
10、能处理这一异常的代码并把当前异常对象交给其处理,这一过程成为捕获(catch)异常。3. try代码段包含可能产生例外的代码;try代码段后跟有一个或多个catch代码段;每个catch代码段声明其能处理的一种特定类型的异常并提供处理的方法;当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段;finally段的代码无论是否发生异常都有执行;4. 异常的分类:(1) Error:成为错误,有Java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理;(2) Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显
11、式的声明或捕获;(3) Runtime Exception:一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序的可读性和运行效率影响很大。因此有系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。5. try语句:(1) try语句指定了一段代码,该段代码就是一次捕获并处理例外的范围;(2) 在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理;(3) 如果没有例外产生,所有的catch代码段都被略过不执行。6. catch语句:(1) 在catch语句块中是对异常进行
12、处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象;(2) 在catch中声明的异常对象(catch(SomeException e)封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息,如:a) getMessage()方法,用来得到有关异常事件的信息;b) printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。7. finally语句:(1) finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其它部分以前,能够对程序的状态作统一的管理;(2) 无论try所指定的程序
13、块中是否抛出例外,finally所指定的代码都要被执行;(3) 通常在finally语句中可以进行资源的清楚工作如:关闭打开的文件,删除临时文件8. 自定义异常的使用步骤:(1) 通过继承java.lang.Exception类声明自己的异常类;(2) 在方法适当的位置生成自定义异常的实例,并用throw语句抛出;(3) 在方法的声明部分用throws语句声明该方法可能抛出的异常。重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常!数组:1. 数组可以看成是多个相同类型数据组合,对这些数据的统一管理;2. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
14、;3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型;4. Java语言中声明数组时不能指定其长度(数组中元素的个数);5. Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 数组元素的个数 6. 元素为引用数据类型的数组中的每一个元素都需要实例化;7. 数组的初始化:(1) 动态初始化:数组定义与为数组元素分配空间和赋值的操作分开进行;(2) 静态初始化:在定义数组的同时就为数组元素分配空间并赋值;(3) 数组元素的默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化;8. 数组元素
15、的引用:(1) 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;(2) 每个数组都有一个属性length指明它的长度,如a.length的值为数组a的长度(元素个数);9. 二维数组:(1) 二维数组可以看成以数组为元素的数组;(2) Java中多位数组的声明和初始化应按从高维到低维的顺序进行;10. 数组的拷贝:(1) 使用java.lang.System类的静态方法public static void arraycopy(Object src,int srcPos,Object dest,int destPos, int length);(2) 可以用于数组src从第src
16、Pos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置;(3) 如果源数据数目超过目标数组边界会抛出IndexOutOfBoundsException异常。String类:1. java.lang.String类代表不可变的字符序列;2. String类的常见构造方法:(1) String(String original):创建一个String对象为original的拷贝;(2) String(char value):用一个字符数组创建一个String对象;(3) String(char value,int offset,int count):用一个字符数
17、组从offset项开始的count个字符序列创建一个String对象;3. String类常用方法:静态重载方法:public static String valueOf()可以将基本类型数据转换为字符串;方法public Stringsplit(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组;StringBuffer类:1. java.lang.StringBuffer代表可变的字符序列;2. StringBuffer和String类似,但StringBuffer可以对其字符串进行改变;3. StringBuffer类的常见构造方法:(1)String
18、Buffer():创建一个不包含字符序列的“空”的StringBuffer对象;(2)StringBuffer(String str):创建一个StringBuffer对象,包含与String对象str相同的字符序列;4. StringBuffer常用方法:基本数据类型包装类:1. 包装类(如:Interger,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作;2. 以java.lang.Interger类为例:构造方法:(1) Integer(int value)(2) Integer(String s)3.包装类常见方法:Math类:java.lang.Mat
19、h提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型:File类:1. java.io.File类代表系统文件名(路径和文件名);2. File类的常见构造方法:(1) public File(String pathname):以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储;(2) public File(String parent,String child):以parent为父路径,child为子路径创建File对象;3. File的静态属性String separator 存储了当前系统
20、的路径分隔符;4. File类常用方法:枚举类型:1. 只能够取特定值中的一个;2. 使用enum关键字;3. 是java.lang.Enum类型用GUI设计完成1+1=2;import java.awt.*;import java.awt.event.*;public class TFMath public static void main(String args) new TFFrame().launchFrame(); class TFFrame extends Frame TextField num1, num2, num3; public void launchFrame() num
21、1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15); Label lblPlus = new Label(+); Button btnEqual = new Button(= btnEqual.addActionListener(new MyMonitor(); setLayout(new FlowLayout(); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack(); setVisible(true); priv
22、ate class MyMonitor implements ActionListener public void actionPerformed(ActionEvent e) int n1 = Integer.parseInt(num1.getText(); int n2 = Integer.parseInt(num2.getText(); num3.setText( + (n1+n2); C/S 监听和信息的发送import .*;import java.io.*;public class TCPServer public static void main(String args) thr
23、ows Exception ServerSocket ss = new ServerSocket(6666); while (true) Socket s = ss.accept(); System.out.println(a client connect! DataInputStream dis = new DataInputStream(s.getInputStream(); System.out.println(dis.readUTF(); dis.close(); s.close();public class TCPClient Socket s = new Socket(127.0.
24、0.1, 6666); OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); Thread.sleep(30000); dos.writeUTF(hello server! dos.flush(); dos.close(); s.close();线程调用,实现程序的交叉调用public class TestThread1 public static void main(String args) Runner1 r = new Runner1(); r.start(); for(int i=0; i100; i+) Main Thread:- + i);class Runner1 extends Thread public void run() i+) Runner1 :监听器实现了什么接口(ActionListener),实现了什么方法(public void actionPerformed(ActionEvent e)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1