同步操作将从 dearHaoGeGe/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Java代码中被final修饰的类不可以被继承。
Java代码中被final修饰的方法不可以被重写。
Java代码中被final修饰的变量不可以被改变,如果修饰引用类型,那么表示引用类型不可变,引用类型指向的内容可变。
Java代码中被final修饰的方法,JVM会尝试将其内联,以提高运行效率。
Java代码中被final修饰的常量,在编译阶段会存入常量池中。
Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象的地址是否相等(可以理解成是否是同一个对象),地址相等则认为是对象相等,hashCode()方法用于计算对象的哈希码。equals()和hashCode()都不是final方法,都可以被重写(overwrite)。
hashCode()方法是为对象产生整型的hash值,用作对象的唯一标识。
hashCode()方法常用于基于hash的集合类,如Hashtable、HashMap等,根据Java规范使用equal()方法来判断两个相等的对象,必须具有相同的hashcode。
将对象放入到集合中时,首先要判断放入对象的hashcode是否已经存在,不存在则直接放入集合。
如果hashcode相等,然后通过equal()方法判断要放入对象与集合中的其他对象是否相等,使用equal()判断不相等,则直接将该元素放入集合中,反之不放入集合中。
标识符用作给变量、类和方法命名。
标识符以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头。
大小写敏感
不能与Java语言的关键字重名
不能和Java类库的类名重名
不能有空格、@、#、+、-、/ 等符号
长度无限制
应该使用有意义的名称,达到见名知意的目的
不可以是true和false
String 类型常用方法有很多,见表格内容:
返回类型 | 方法名 | 功能说明 |
---|---|---|
int | length() | 得到字符串的字符个数 |
byte[] | getByte() | 将字符串转换成字节数组 |
char[] | toCharArray() | 将字符串转换成字符数组 |
String | split(String) | 将字符串按照指定内容劈开 |
boolean | equals() | 判断两个字符串的内容是否相同,可以重新equals |
boolean | equalsIgnoreCase(String) | 忽略太小写比较两个字符串的内容是否相同 |
boolean | contains(String) | 判断字符串里面是否包含指定的内容 |
boolean | startsWith(String) | 判断字符串是否以指定的内容开头 |
boolean | endsWith(String) | 判断字符串是否以指定的内容结尾 |
String | toUpperCase() | 将字符串全部转换成大写 |
String | toLowerCase() | 将字符串全部转换成小写 |
String | replace(String,String) | 将某个内容全部替换成指定内容 |
String | replaceAll(String,String) | 将某个内容全部替换成指定内容,支持正则 |
String | repalceFirst(String,String) | 将第一次出现的某个内容替换成指定的内容 |
String | substring(int) | 从指定下标开始一直截取到字符串的最后 |
String | substring(int,int) | 从下标x截取到下标y-1对应的元素 |
String | trim() | 去除字符串的前后空格 |
char | charAt(int) | 得到指定下标位置对应的字符 |
int | indexOf(String) | 得到指定内容第一次出现的下标 |
int | lastIndexOf(String) | 得到指定内容最后一次出现的下标 |
还包括valueOf()方法,由基本数据型态转换成String:String类别中已经提供了将基本数据型态转换成String的static方法 ,也就是String.valueOf()这个参数多载的方法,有以下几种:
1)String.valueOf(boolean b): 将boolean变量b转换成字符串
2)String.valueOf(char c): 将char变量c转换成字符串
3)String.valueOf(char[] data): 将char数组data转换成字符串
4)String.valueOf(char[] data, int offset, int count): 将char数组data中由data[offset]开始取count个元素转换成字符串
5)String.valueOf(double d): 将double变量d转换成字符串
6)String.valueOf(float f): 将float变量f转换成字符串
7)String.valueOf(int i): 将int变量i转换成字符串
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
历史上的原因是OpenJDK是JDK的开放原始码版本,以GPL(General Public License)协议的形式放出(题主提到的open就是指的开源)。在JDK7的时候,OpenJDK已经作为JDK7的主干开发,SUN JDK7是在OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。
至于OpenJDK6则更是有其复杂的一面,首先是OpenJDK6是JDK7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。
关于JDK和OpenJDK的区别,可以归纳为以下几点:
授权协议的不同: OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在OpenJDK中是找不到的。
OpenJDK源代码不完整: 这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放给OpenJDK使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。
部分源代码用开源代码替换: 由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
OpenIDK只包含最精简的JDK: OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
不能使用Java商标:这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK,但是如果是使用Icedtea补丁的OpenJDK,显示的是java。
Request和Response对象起到了服务器与客户机之间的信息传递作用。Request对象用于接收客户端浏览器提交的数据,而Response 对象的功能则是将服务器端的数据发送到客户端浏览器。
1、Request对象
QueryString:用以获取客户端附在url地址后的查询字符串中的信息。
stra=Request.QueryString ["strUserld"]
Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
stra=Request.Form["strUserld"]
Cookies:用以获取客户端的Cookie信息。
stra=Request.Cookies["strUserld"]
ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
stra=Request.ServerVariables["REMOTE_ADDR"]//返回客户端IP地址
ClientCertificate:用以获取客户端的身份验证信息
stra=Request.ClientCertificate["VALIDFORM"]//对于要求安全验证的网站,返回有效起始日期。
2、Response对象
Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。
语法格式:Response.Cookies(CookieName)[(key)|.attribute]=value。这里的CookiesName是指定的Cookie的名称,如果指定了Key,则该Cookie就是一个字典,Attribute属性包括Domain,Expires,HasKeys,Path,Secure。
response的方法:
Write:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等。
Redirect:response.redirect("url")的作用是在服务器端重定向于另一个网页。
End:用来终止脚本程序。
Clear:要说到Clear方法,就必须提到response的Buffer属性,Buffer属性用来设置服务器端是否将页面先输出到缓冲区。语法为:
Response.Buffer=True/False
Flush:当Buffer的值为True时,Flush方法用于将缓冲区中的当前页面内容立刻输出到客户端。
Java中定义常量的最常用方法之一是通过整数,其中整数变量是静态的。
public static int MONDAY = 0;
public static int TUESDAY = 1;
public static int WEDNESDAY = 2;
public static int THURSDAY = 3;
远程接口用来标识哪些方法是可以被非本地虚拟机调用的接口。
远程对象必须要直接或者是间接实现远程接口。
实现了远程接口的类应该声明被实现的远程接口,给每一个远程对象定义构造函数,给所有远程接口的方法提供实现。
Java中Integer a=128与Integer b=128是不相等。
Integer a= 127;
Integer b= 127;
Integer c= 128;
Integer d= 128;
System.out.println(a==b); //返回true;
System.out.println(c==d); //返回false;
System.out.println(a.equals(b)); //返回true;
System.out.println(c.equals(d)); //返回true;
引用类型中==是比较的对象内存地址;而基本数据类型中==是比较的值。
IntegerCache.low默认是-128;IntegerCache.high默认是127。
如果Integer类型的值是-128到127之间,那么自动装箱时不会new新的Integer对象,而是直接引用常量池中的Integer对象,因此超过范围c==d的结果是false。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。