同步操作将从 Java精选/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Java中定义常量的最常用方法之一是通过整数,其中整数变量是静态的。
public static int MONDAY = 0;
public static int TUESDAY = 1;
public static int WEDNESDAY = 2;
public static int THURSDAY = 3;
Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。
重载(Overload):是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同
重载规则
1、被重载的方法必须改变参数列表(参数个数或类型不一样);
2、被重载的方法可以改变返回类型;
3、被重载的方法可以改变访问修饰符;
4、被重载的方法可以声明新的或更广的检查异常;
5、方法能够在同一个类中或者在一个子类中被重载;
6、无法以返回值类型作为重载函数的区分标准;
实例:
public class OverloadDemo {
// 方法1 无参
public int test() {
System.out.println("公众号Java精选,3000+面试题!");
return 1;
}
// 方法2 单一参数
public void test(int a) {
System.out.println("公众号Java精选,3000+面试题!!");
}
// 方法3 下面两个参数类型顺序不同
public String test(long a, String s) {
System.out.println(s);
return "方法3返回->" + s;
}
//方法4
public String test(String s, int a) {
System.out.println(s);
return "方法4返回->" + s;
}
public static void main(String[] args) {
OverloadDemo od = new OverloadDemo();
System.out.println(od.test());//方法1
od.test(2);//方法2
System.err.println(od.test(3l, "公众号Java精选,3000+面试题!"));//方法3
System.err.println(od.test("公众号Java精选,3000+面试题!!!", 4));//方法4
}
}
执行结果
公众号Java精选,3000+面试题!
1
公众号Java精选,3000+面试题!!
公众号Java精选,3000+面试题!
方法3返回->公众号Java精选,3000+面试题!
方法4返回->公众号Java精选,3000+面试题!!!
公众号Java精选,3000+面试题!!!
实例化一个子类对象时会先执行其父类的构造函数,然后再执行子类的构造函数。
super()必须先被调用;如果子类构造方法中没有写super(),编译器会自动调用super()方法,即调用父类的默认无参构造方法,因此不可以父类中只定义了有参数的构造方法。
Java中如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法。
abstract类为抽象类,即该类只关心子类具有的功能,而不是功能的具体实现。
抽象类不能实例化,其作用是为了被其他类继承,因此final关键字不能修饰抽象类。
抽象类是被用于继承的,final修饰代表不可修改、不可继承的。
java.rmi.Naming类用来存储和获取在远程对象注册表里面的远程对象的引用。
Naming类的每一个方法接收一个URL格式的String对象作为它的参数。
Java中可以一次catch多个异常,JDK1.7版本以后,可以通过以下代码实现:
try {
//.....
} catch ( IllegalArgumentException
| SecurityException
| IllegalAccessException
|NoSuchFieldException exc) {
//.....
}
历史上的原因是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。
类名和接口名:通常定义为由具有含义的单词组成,所有单词的首字母大写。
长度基本上没有限制。
但是不能使用Java关键字(例如,public或 class等)作为类名。
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方法用于将缓冲区中的当前页面内容立刻输出到客户端。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。