1、 关于java类中的缺省的构造器 |
2、Java中的类名与文件名 |
3、import关键字 |
4、Java中的几个特殊关键字 |
5、java方法中的传递值参 |
public class tt{ public static void main (String args[]){ A aa = new A(); aa.num =5; tt t = new tt(); System.out.println("11 aa="+aa + "num="+aa.num); t.test(aa); System.out.println("22 aa="+aa + "num="+aa.num); } void test(A a){ A ab = new A(); a = ab; System.out.println("33 ab="+ab + "num="+ab.num); } } class A{ int num; } |
6、变量初始化 |
class AA{ int num; void test(){ int j; j =5;//没有这一行则编译不会通过。 j = j+num; } } |
7、switch语句 |
public class tt{ public static void main (String args[]){ tt t = new tt(); t.test(2);//可改变成3运行一下看一下结果 } void test(int i){ switch (i){ default: System.out.println("default"); case 1: System.out.println("111"); break; case 2: System.out.println("222"); break; } } } |
8、关于java中的label使用 · break [label] · continue[lbele] · lable: statement; //这里的statement必须是一个loop循环 public class tt{ public static void main (String args[]){ tt t = new tt(); t.test(); } void test(){ System.out.println("0000"); lb1:for (int i=0;i<10;i++){ lb2:for (int j=0; j<2; j++){ if (i==2) continue lb1; System.out.println("i="+i +" j="+j); } } System.out.println("111111"); } } |
9、类型转换校正 class Employee | class Manager 向上校正,总是允许的,Manager直接使用父类Employee的方法。 向下校正,必须用instanceof检验,才能将一个Employee转换为Manager对象。 public void test(Employee e){ if (e instanceof Manager){ Manager m = (Mnager)e; ... } } |
10、方法重载(overloading)、方法覆盖(overriding) 方法重载(overloading)一定要求名字相同,参数不同,返回类型可以相同也可以不同 class A{ void test(int i){ } } class AA extends A{ int test(int i, int j){ return 5; } } 注:方法覆盖(overriding)要求名字,参数,返回类型全部必须相同,访问控制符可以不同,但必须大过父类的。因为如果名字和参数都已经相同了则一定要求返回类型相同,否则认为这是一个新的方法了,名字就必须不同了。 class A{void test(int i){ } } class AA extends A{ public void test(int i){//若是换成private则编译不通过。 } } 注:关于覆盖方法抛出异常的问题。如A是父类,B是继承A的子类。B中的方法meth()去覆盖父类A的此方法时,B中不能throws出新的异常,只能是父类抛出的异常或其子集。更甚至可以不抛出异常。 |
11、关于类的构造器重载问题 class A{ public A(int i){ } } class AA extends A{ public AA(){ int i = 5; // 这里出错,没有父构造器 } } 由于父类A自定义了构造器,所以缺省的构造器就丢失了,当子类的构造器自动试图调用父类没参数的构造器时却没有,所以会编译出错。 |
12、关于static关键字总结: |
13、关于final关键字 final int j; public A(){ j = 9;//若没有此行,则编译不通过。 } } 3、final类型的方法参数可定义,但不能改变。 class A{ void m(final int i){ //这一行的声明i为一个final没问题。 i ++ ; //但在这里面,i的值不能再被改变。 } } |
14、Interface接口关键字 void s(); } class AA implements A{ void s(){ //编译器在这里提示由于接口中的方法s()修饰符默认是public, //而这里的s()默认是protected,小于public所以不允许。 } } |
15、abstract抽象关键字 abstract class A{ private int i; private void m();{} } 抽象类中可以有私有的变量和私有属性,而接口就不行(原因如上), abstract class A{ |
16、集合类型 |
17、布局管理器 |
18、面试试题中Applet部分 |
19、面试试题中线程部分 |
20、对象串行化 |
21、java中的网络通讯 一般的TCP/IP网络数据通信主要可分2种,TCP和UDP TCP:TCP是面向连接的通信协议,就像打电话,先要拨通建立连接,传送的数据不会丢失。 java提供了ServerSocket和socket类。在server端,建立一个serverSocket,并指定端口,并侦听连接。 服务器端代码 ServerSocket sc=new ServerSocket(1111); Socket socket1= sc.accept(); DataInputStream s_in = new DataInputStream(socket1.getInputStream()); 客户端代码 Socket socket2 = new Socket("192.168.1.1",1111); UDP:UDP非面向连接,就像写信,将传输的数据包成一个分组,可能有数据丢失 服务器端代码 DatagramSocket server = new DatagramSocket(1234); DatagramPacket in_packet =new DatagramPacket(in_buf,2000); server.recieve(in_packet); 客户端代码 DatagramSocket client= new DatagramSocket(1235); DatagramPacket out_packet= new DatagramPacket (out_buf,100,"192.168.1.1",1234); client.send(outPacket); |
22、String对象 public static void main (String args[]){ tt t = new tt(); t.test(2); } void test(int i){ String s1 = "123"; String s2 = "123"; if (s1==s2) System.out.println("111111"); else System.out.println("2222222"); } } 结果输出:111111 |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |