一、字符界面下接受用户从键盘输入,需要import的包是:
字符界面下前端用户输入、后台程序获取,都是字符流的传输,因此需要导入java.io包。而java.util中的Scanner则是获取控制台的输入。
二、如下:
class Foo { final int i; int j; public void doSomething() { System.out.println(++j + i); } }
运行结果是:不能执行,因为编译有错。
原因:final类型的变量一定要初始化,因为final的变量不可更改。
三、JSP分页代码中,执行的顺序正确的是:先取总记录数,得到总页数,最后显示本页的数据。
四、关于webservice的描述:
char chr = 127; int sum = 200; chr += 1; sum += chr; 后,sum的值是 ; ( ) 备注:同时考虑c/c++和Java的情况的话
对于c/c++语言来说:char是一个字节,第一位是符号位,chr在计算机中是补码形式存储,而正数的补码就是原码本身:0111 1111,chr+=1后,chr变为1000 0000,实际上已经溢出了,sum在计算机中存储形式是(假设当前编译器int为16位):0000 0000 1100 1000,接着算sum += chr,sum是16位的而chr是8位的,chr会自动转成16位的,按照按符号位扩展规则,前面补1111 1111,chr变成了1111 1111 1000 0000,于是在计算机内部是0000 0000 1100 1000和1111 1111 1000 0000相加,得到(1)0000 0000 0100 1000 ,第一个1舍去,1001000是72。但是对于我们来说不需要了解那么多,知道补码1000 0000代表-128,200-128=72就完事了。
对于Java来说就是328.
七、网络编程中的函数
TCP客户端:
1.建立连接套接字,设置Ip和端口监听,socket()
2.建立连接 connect
3.write() 获取网络流对象 发送数据
4.read()获取网络流对象 接收数据
5.关闭套接字
TCP服务器端
1.建立端口监听 socket()
2.绑定指定端口 bind()
3.listen 进行端口监听
4.accept() 阻塞式 直到有客户端访问
5.read()获取客户端发送数据
6.write()发送返回数据
7.close关闭端口监听
八、final关键字
final修饰的成员变量为基本数据类型时,在赋值之后无法改变。当final修饰的成员变量为引用数据类型时,在赋值后其指向地址无法改变,但是对象内容还是可以改变的。
final修饰的成员变量在赋值时可以有三种方式:
1、在声明时直接赋值。
2、在构造器中赋值。
3、在初始代码块中进行赋值。
final修饰的方法,不允许被子类覆盖。
final修饰的类,不能被继承。
final修饰的变量,不能改变值。
final修饰的引用类型,不能再指向别的东西,但是可以改变其中的内容。
九、序列化
序列化的是对象,不是类,类变量(static变量)不会被序列化,即无法传递值。
十、Java的体系结构
复写语句:形式为f = g 的赋值
优化过程中会大量引入复写
复写传播变换的做法是在复写语句f = g后,尽可能用g代表f
复写传播变换本身并不是优化,但它给其他优化带来机会
常量合并(编译时可完成的计算)
死代码删除
死代码删除
死代码是指计算的结果决不被引用的语句
一些优化变换可能会引起死代码
代码外提
例:
while(i <= limit - 2) ... // 代码外提后变成 t = limit - 2; while(i <= t) ...
归纳变量删除
j = j - 1 t4 = 4 * j t5 = a[t4] if t5 > value goto B3
强度削弱
强度削弱的本质是把强度大的运算换算成强度小的运算,例如将乘法换成加法运算。
十二、Java程序
java程序的种类
1.Application:Java应用程序,是可以由Java解释器直接运行的程序。
2.Applet:即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的Java程序。
3.Servlet:Java服务器端小程序,由Web服务器(容器)中配置运行的Java程序。
j2sdk是JAVA的开发环境包它包含JDK(开发工具包,包含JRE)和JRE(运行时环境包),简称JDK。J2SDK包含很多东西,比如Java language 、 Deployment等。 API只是其中很小的一部分。
Appletviewer.exe可利用java.exe选项运行.jar文件
Applet:即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的Java程序
Appletviewer是运行applet的, applet 不用main方法,继承applet类即可。
平台的 JRE 2.appletviewer appletviewer 提供了一个Java运行环境,在其中可测试小应用程序Applet。appletviewer 读取包含小应用程序的HTML文件并在一个窗口中运行它们。
十三、Java集合框架
十四、
下列语句输出什么结果? public class TestIncr { public static void main(String args[]) { int i = 0; i = i++ + i; System.out.println("I =" +i); } }
运行结果:I = 1
i=_i+1先运算了++,此时i值已经变了,但是i++ +i时其实运算的是_i+i。 所以是,i++做运算时取的是运算前的值,但他本身会执行。