Java教程

day02 Java基础

本文主要是介绍day02 Java基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、字符界面下接受用户从键盘输入,需要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的描述:

  1. Webservice是跨平台,跨语言的远程调用技术;
  2. 它的通信机制实质就是xml数据交换;
  3. 它采用了soap协议(简单对象协议)进行通信
    五、符号的使用(符号后面加上“=”,表示是个赋值符号)
    <<表示左移位
    ‘>>’表示带符号右移位
    ‘>>>’表示无符号右移
    六、执行如下程序代码
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的体系结构

  1. Java编程语言
  2. Java类文件格式
  3. Java API
  4. JVM
    十一、对循环进行优化
    常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除

复写语句:形式为f = g 的赋值
优化过程中会大量引入复写
复写传播变换的做法是在复写语句f = g后,尽可能用g代表f
复写传播变换本身并不是优化,但它给其他优化带来机会
常量合并(编译时可完成的计算)
死代码删除
死代码删除
死代码是指计算的结果决不被引用的语句
一些优化变换可能会引起死代码
代码外提

  1. 代码外提是循环优化的一种
  2. 循环优化的其它重要技术
    归纳变量删除
    强度削弱

例:

while(i <= limit - 2) ...
// 代码外提后变成
t = limit - 2;
while(i <= t) ...

归纳变量删除

j = j - 1
t4 = 4 * j
t5 = a[t4]
if t5 > value goto B3
  • j和t4的值步伐一致地变化,这样的变量叫作归纳变量
  • 在循环中有多个归纳变量时,也许只需要留下一个
  • 这个操作由归纳变量删除过程来完成
    对本例可以先做强度削弱,它给删除归纳变量创造机会

强度削弱
强度削弱的本质是把强度大的运算换算成强度小的运算,例如将乘法换成加法运算。
十二、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++做运算时取的是运算前的值,但他本身会执行。

这篇关于day02 Java基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!