Java实用手册
2015-11-17 21:52
609 查看
##配置Java开发环境-Tomcat,MyEclipse
配置Windows版Tomcat服务器
到下载吧下载tomcat绿色安装包
下载后解压到某个PATH
新建一个系统变量,名为CATALINA_HOME,路径为PATH
启动Tomcat服务器:PATH\startup.bat; 停止Tomcat服务器:PATH\shudown.bat
打开
配置Tomcat默认打开的文件名
更改Tomcat的web.xml:
修改Tomcat端口号步骤
找到Tomcat目录下的conf文件夹
进入conf文件夹里面找到server.xml文件
打开server.xml文件
在server.xml文件里面找到下列信息
5.把port="8080"改成port="8888",并且保存
配置MyEclipse
可观看教程:MyEclipse开发JavaWeb程序
修改项目的虚拟路径
查看教程:理解Web项目虚拟路径
HashSet和HashMap还会调用
因为默认equals只是会比较内存地址是否相同,但有时我们想要的效果是某些属性相同就可认为该俩对象是相等的,
所以很多时候我们需要用eclipse来生成
利用
集合包括Collection和Map。Collection: List, Queue, Set; Map: HashMap
在集合中取出元素时类型都会为Object,故取出时需要转换类型
而利用泛型(规定某个集合只可以存放特定类型的对象,会在编译的时候检查),可以直接按指定类型获取集合元素,无须转换了
泛型不能使用基本类型,但可以使用基本类型的包装类
因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类
==:判断两个字符串在内存中首地址是否相同,即判断是否同一个字符串对象;
equals():比较存储在两个字符串对象中的内容是否一致
而Object类的==与equals都是比较内存地址是否相同。
##Java的多态
继承是实现多态的基础
有引用多态,方法多态
Java的多态的好处体现于,能把同一类的但又各自又不同的对象放在同一个数组里面:
##封装与继承
子类的构造方法必须调用父类的构造方法,如果没有调用,系统会默认调用父类的无参构造方法,但如果父类没有无参构造方法,就会报错了
定义了成员内部类,必须用外部对象来创建内部对象,不能直接new一个内部对象:
同时访问外部类的相同名的属性时,使用:
创建静态内部类,则可以直接 内部类 名字 = new 内部类
而访问外部类的相同名的静态属性时,使用:
引入另外一个包后,如果引入的包里有相同名的class并且有相同签名的构造方法时,调用构造方法将采用引入包的class的构造方法
类里面的静态内部类
类对象:通过
类的对象:是一个类的初始化后的实例对象,描述的是类的属性值:熊猫、165cm、20岁、165kg
##修饰符
private 本类
默认 本类,同包
protected 本类,同包,子类
public 本类,同包,子类,其他
##抽象类和接口
抽象类:
在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但不关心这些子类如何实现这些方法
从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类为子类的模板,避免子类设计的随意性
接口:接口由全局常量和公共抽象方法组成。接口默认有abstract关键字来修改,如果没写的话,系统会自动加上。
接口中的常量都是
抽象类和接口都定义和限制子类必须实现某些接口,但区别是:
抽象类可以有普通的变量和方法
类是单继承的,而接口可以是同时实现多个
接口用的是interface
如果同时继承抽象类和实现接口,那么继承类需在实现接口之前
使用接口可以用接口引用来指向实现接口的类:
接口还经常与匿名内部类来配合使用:
配置Windows版Tomcat服务器
到下载吧下载tomcat绿色安装包
下载后解压到某个PATH
新建一个系统变量,名为CATALINA_HOME,路径为PATH
启动Tomcat服务器:PATH\startup.bat; 停止Tomcat服务器:PATH\shudown.bat
打开
http://localhost:8080/如看到Tomcat页面即配置成功
配置Tomcat默认打开的文件名
更改Tomcat的web.xml:
<welcome-file-list> <welcome-file>/haha.jsp</welcome-file> </welcome-file-list>
修改Tomcat端口号步骤
找到Tomcat目录下的conf文件夹
进入conf文件夹里面找到server.xml文件
打开server.xml文件
在server.xml文件里面找到下列信息
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
5.把port="8080"改成port="8888",并且保存
配置MyEclipse
可观看教程:MyEclipse开发JavaWeb程序
修改项目的虚拟路径
查看教程:理解Web项目虚拟路径
Collection
Collection中的contains,containsAll方法,都会调用equals()来判断
HashSet和HashMap还会调用
hashCode()方法来判断
因为默认equals只是会比较内存地址是否相同,但有时我们想要的效果是某些属性相同就可认为该俩对象是相等的,
所以很多时候我们需要用eclipse来生成
equals和
hashCode方法Override(Source->Generate hashCode() and equals()...),然后选择好想要比较的属性即可
利用
Arrays把数组转换成list,也就是collection:
Arrays.asList(arr);
集合包括Collection和Map。Collection: List, Queue, Set; Map: HashMap
在集合中取出元素时类型都会为Object,故取出时需要转换类型
而利用泛型(规定某个集合只可以存放特定类型的对象,会在编译的时候检查),可以直接按指定类型获取集合元素,无须转换了
泛型不能使用基本类型,但可以使用基本类型的包装类
StringBuilder和StringBuffer
StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类
==与equals
String类的==和equals()的区别:==:判断两个字符串在内存中首地址是否相同,即判断是否同一个字符串对象;
equals():比较存储在两个字符串对象中的内容是否一致
而Object类的==与equals都是比较内存地址是否相同。
##Java的多态
继承是实现多态的基础
有引用多态,方法多态
//引用多态 Animal ani = new Animal(); Animal ani2 = new Dog(); //方法多态 ani.eat(); // animal eat ani2.eat(); // dog eat //ani2.watchDoor()是不允许的
Java的多态的好处体现于,能把同一类的但又各自又不同的对象放在同一个数组里面:
NBATeam[] arr = {new Lakers(), new Clippers(), new Magics()};
##封装与继承
子类的构造方法必须调用父类的构造方法,如果没有调用,系统会默认调用父类的无参构造方法,但如果父类没有无参构造方法,就会报错了
定义了成员内部类,必须用外部对象来创建内部对象,不能直接new一个内部对象:
Outer o = new Outer(); Inner i = o.new Inner();
同时访问外部类的相同名的属性时,使用:
Outer.this.name,
创建静态内部类,则可以直接 内部类 名字 = new 内部类
StaticInner si = new StaticInner();
而访问外部类的相同名的静态属性时,使用:
StaticOuter.name,方法内部类,就是内部类定义在外部类的方法里,不能使用访问控制符和static
引入另外一个包后,如果引入的包里有相同名的class并且有相同签名的构造方法时,调用构造方法将采用引入包的class的构造方法
类里面的静态内部类
public class Animal { String name; int count; double say(String msg){ return 100; } public Animal(){ } public class AnimalInnerCommon{ public void test(){ System.out.println("AnimalInnerCommon test"); } } // 静态内部类 public static class AnimalInner{ public void test(){ System.out.println("AnimalInner test"); } } } //必须继承Animal才能使用其静态内部类 public class Dog extends Animal{ double say(String msg){ return 88.8; } public static void main(String[] args){ Animal ani = new Animal(); // 直接使用AnimalInner而不用Animal或者它的实例 AnimalInner ai = new AnimalInner(); ai.test(); // 通过Animal实例来使用其成员内部类 AnimalInnerCommon ai2 = ani.new AnimalInnerCommon(); ai2.test(); } }
obj.getClass()
类对象与
类的对象:
类对象:通过
obj.getClass()来获取,描述的是类的属性信息:姓名、身高、年龄、体重
类的对象:是一个类的初始化后的实例对象,描述的是类的属性值:熊猫、165cm、20岁、165kg
##修饰符
private 本类
默认 本类,同包
protected 本类,同包,子类
public 本类,同包,子类,其他
##抽象类和接口
抽象类:
在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但不关心这些子类如何实现这些方法
从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类为子类的模板,避免子类设计的随意性
接口:接口由全局常量和公共抽象方法组成。接口默认有abstract关键字来修改,如果没写的话,系统会自动加上。
接口中的常量都是
public static final修饰符的,接口的方法都是
public abstract
抽象类和接口都定义和限制子类必须实现某些接口,但区别是:
抽象类可以有普通的变量和方法
类是单继承的,而接口可以是同时实现多个
接口用的是interface
如果同时继承抽象类和实现接口,那么继承类需在实现接口之前
使用接口可以用接口引用来指向实现接口的类:
Interface1 i1 = new InterfaceImplementedCls();
接口还经常与匿名内部类来配合使用:
Interface1 i1 = new InterfaceImplementedCls(){ public void implementMethod(){ System.out.println("使用匿名类型类来实现接口"); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- JSP/PHP基于Ajax的分页功能实现
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树