博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实用手册
阅读量:7226 次
发布时间:2019-06-29

本文共 3400 字,大约阅读时间需要 11 分钟。

  hot3.png

##配置Java开发环境-Tomcat,MyEclipse

配置Windows版Tomcat服务器

  1. 到下载吧下载tomcat绿色安装包
  2. 下载后解压到某个PATH
  3. 新建一个系统变量,名为CATALINA_HOME,路径为PATH
  4. 启动Tomcat服务器:PATH\startup.bat; 停止Tomcat服务器:PATH\shudown.bat
  5. 打开 http://localhost:8080/ 如看到Tomcat页面即配置成功

配置Tomcat默认打开的文件名

更改Tomcat的web.xml:

/haha.jsp

修改Tomcat端口号步骤

  1. 找到Tomcat目录下的conf文件夹
  2. 进入conf文件夹里面找到server.xml文件
  3. 打开server.xml文件
  4. 在server.xml文件里面找到下列信息

5.把port="8080"改成port="8888",并且保存

配置MyEclipse

可观看教程:

修改项目的虚拟路径

查看教程:

Collection

Collection中的contains,containsAll方法,都会调用equals()来判断

HashSet和HashMap还会调用hashCode()方法来判断

因为默认equals只是会比较内存地址是否相同,但有时我们想要的效果是某些属性相同就可认为该俩对象是相等的,

所以很多时候我们需要用eclipse来生成equalshashCode方法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 eatani2.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 本类,同包,子类,其他

##抽象类和接口

抽象类:

  1. 在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但不关心这些子类如何实现这些方法
  2. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类为子类的模板,避免子类设计的随意性

接口:接口由全局常量和公共抽象方法组成。接口默认有abstract关键字来修改,如果没写的话,系统会自动加上。

接口中的常量都是public static final修饰符的,接口的方法都是public abstract

抽象类和接口都定义和限制子类必须实现某些接口,但区别是:

  1. 抽象类可以有普通的变量和方法
  2. 类是单继承的,而接口可以是同时实现多个
  3. 接口用的是interface

如果同时继承抽象类和实现接口,那么继承类需在实现接口之前

使用接口可以用接口引用来指向实现接口的类:

Interface1 i1 = new InterfaceImplementedCls();

接口还经常与匿名内部类来配合使用:

Interface1 i1 = new InterfaceImplementedCls(){  public void implementMethod(){    System.out.println("使用匿名类型类来实现接口");  }}

转载于:https://my.oschina.net/luozt/blog/531746

你可能感兴趣的文章
插入透明背景Flash的HTML代码
查看>>
无标题
查看>>
我的友情链接
查看>>
Web前端入门学习(3)——CSS选择器
查看>>
DNS的搭建
查看>>
Apache/Nginx 访问日志分析脚本
查看>>
Curator的使用
查看>>
第五章 集合类型
查看>>
我的友情链接
查看>>
nagios监控服务出现FLAPPING状态时无法发出邮件报警信息
查看>>
数据库链接字符串方法
查看>>
The DCI Architecture: A New Vision of Object-Oriented Programming(一篇具有里程碑式意义的论文)...
查看>>
RIP路由配置实例V2
查看>>
Bytescout Spreadsheet SDK for.NET
查看>>
我的友情链接
查看>>
Haproxy的三种保持客户端会话保持方式
查看>>
iOS的数学函数
查看>>
python 模块 chardet下载及介绍(转)
查看>>
能力工场--关于在JavaScript中使用EL表达式的问题
查看>>
NFS服务器设置
查看>>