关于java
(2013-10-23 10:11:12)
标签:
杂谈 |
分类: 计算机相关 |
1.java源于C++,也就是说java是基于C++而开发出来的新的编程语言。
2.java在编译之后,会产生字节码(byte code)文件,也就是.class文件。然后根绝不同的操作系统将字节码文件转化为不同的可执行文件,也就是通常说的java平台无关性了。
3.java的可移植性,是依靠他的虚拟机,通过这个抽象的虚拟机来给编译程序提供一个共同的接口。
4.java采用的是Unicode国际标准字符集,而不是计算机通常用的ASCII代码集。
5.java提供了byte,short,int,long,float,double,boolean,char八种基本数据类型。
6.java中&&,||运算符采用短路方式计算,如果左边的假则&&右边不计算,||左边为真,也不计算右边了。
7.java是面向对象的语言oop(object-oriented programming),主要三种技术,封装(encapsulation),继承(inheritance)和多态(polymorphism)。
8.java不支持多重继承,与C++不同,所以采用了借口interface技术。
9.java的多态通过方法的重载,重写以及接口来实现。
10.java中static修饰的是静态属性或者方法,调用时直接调用类名就可以了。
11.java中abstract不可以与final共同修饰一个类;abstract还不可能与private,static,native,final共同修饰一个方法;abstract类中不可以有私有属性和方法;private protected是一个修饰符。
12.java中,对象首先要声明,然后生成,通过实例化对象也就是通过构造函数来生成一个对象。
13.java中接口没有实例变量与实现方法,在接口中仅仅提供定义,不提供具体实现细节。而真正的实现功能是在“继承”这个接口的类中完成的。
14.抽象类是一个类,类中部分方法没有实现,而接口中是所有方法都未实现。另外,接口中所有成员仅限于static final 静态常量。
15.java.lang提供了所有基本数据类型的定义。
16.java中子类继承用extends 关键字,不能继承private的属性和方法。
17.java中类的多态,通过方法的重载和覆盖实现,重载的参数列表必须不同,返回值没有要求,可以相同也可以不同。覆盖时候,子类必须覆盖父类抽象方法,覆盖同名方法时,子类必须与父类有相同的名称和参数列表。
18.java中,抽象类可以没有抽象方法,但是如果一个类包含抽象方法,或者没有为他的父类或者他实现的接口中的抽象方法提供实现,这个类就必须声明为抽象类。
19.java中,final与abstract只能用一个修饰符来修饰类,不能同时用。
20.java中,内部类是指嵌套在外部类中的类,类似于外部类的一个方法。可以被其他内部类访问。
21.java中非静态类不可以声明静态成员,静态的内部类只能引用外部的静态成员和方法。创建静态内部类的时候不需要绑定在外部实例上。非静态的内部类既可以访问静态的也可以访问非静态的外部类成员和方法。22.java中声明数组不指定个数,使用new来创建数组 new <类型>[个数];下标都是从0开始。
23.java中string字符串的定义,如果采用“+”说明返回的是一个新的字符串,与StringBuffer不一样,StringBuffer采用变字长的方式存放数据,不会生成新的对象,StringBuffer采用的是append()方法来扩充stringBuffer。
24.创建线程的方法有两种:一是继承thread类,重写run()方法,二是实现Runnable接口的类。
25.run()方法是线程执行的起点,main()是应用程序执行的起点,init()是Applet执行的起点。通过run方法来为线程提供代码。通过start()方法来启动线程。
26.java Applet 应用程序,是嵌入到浏览器中的程序。必须通过<applet></applet>标签嵌入到浏览器中才可运行的程序。
27.java Applet的生命周期中,共有四种状态(初始状态、运行状态、停止状态、和消亡状态)和四个方法:init()、start()、stop()和destroy()。
28.java中图形化界面设计中,AWT和Swing是基本的开发工具,Swing是AWT的扩展包。Swing定义在javax.swing包中。都采用事件处理模型,有相应的事件类和事件监听器接口。
29.java中JPanel类经常作为一个组件放入到JFrame中或者其他框架容器中,以实现复杂的用户界面。
30.java提供五种标准布局方式FlowLayout(对panel,Applet,JPanel布局),BorderLayout(对Frame,JFrame,Dialog,JDialog进行South,East,West,North,Center布局),CardLayout(卡片间切换布局),GridLayout(网格式布局),GridBagLayout(网格式自由布局)。
31.在各种网络的客户/服务器(C/S)应用中,客户与服务器通信组件是多种多样的,大部分通信组件内底层的核心通信机制都是使用传输层接口的Socket机制。Socket也称套接字,指在网络航两个程序通过一个双向的通信连接实现数据交换的通道。每一端称为一个socket,Socket通常用来实现开发底层的网络通信。
32.TCP传输控制协议,面向连接的可靠通信协议;UDP用户数据报协议是无连接的协议,不可靠的通信协议。
33.TCPSocket 建立程序间通信需要:一,创建Socket,分别创建Socket对象和ServerSocket对象,调用java.net.Socket类和java.net.ServerSocket类分别创建客户端和服务端。二,打开连接到Socket的输入输出流。Socket对象采用connect()方法发送请求,ServerSocket对象可用accept()方法接受请求建立连接。三,通过输入输出流来进行读写操作。四关闭Socket连接。使用close()方法来关闭连接。
34.UDPSocket编程,通过DatagramSocket类用于程序间简历传送数据报的通信连接,DatagramPacket类则用来表示一个传送的数据包。客户端程序首先调用DatagramSocket类来创建一个数据报通信的Socket对象,就可以通过Socket接发数据包了。通过DatagramSocket类提供的receive()和send()方法来收发数据报。指明了目的地址和端口好的数据报用来发送数据,没有指明的用来接收数据。服务器端程序也是首先建立数据报通信DatagramSocket,构建数据报DatagramPacket,接着就是首发数据报。通信结束后关闭数据报通信Socket。
35.Java中的JSP技术(java Server Pages)是一种动态网页技术标准。JSP与javascript不同,当完成JSP代码后,第一次访问JSP网页时,网站服务器会自动加工以JSP写成的java源程序代码转换为java Servlet。而servlet的字节代码只有在客户请求时才执行,所以首次调用JSP时会有几秒加载时间,但之后请求会非常迅速,由于服务器已经缓存了运行的Servlet。JSP的执行速度比ASP快1~2个数量级。
36.JSP的执行过程,JSP容器将编译JSP成Servlet文件,然后JSP容器调用服务器端的Java编译器javac.exe对Servlet文件进行编译,把它变成字节码文件,然后再调用java虚拟机执行字节码文件对客户端请求作出应答。
37.java中常用的隐含对象包括:session,application,request,response对象。其中session对象生命周期是从客户第一次和Web服务器连接到断开与该服务器的连接。application生命周期是从Web服务器启动到Web服务器关闭。request包含客户端向服务器发送请求的内容。response对象包含服务器向客户端作出应答信息。
38.Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
39.pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。