本文共 2657 字,大约阅读时间需要 8 分钟。
命令行cd切换位置后记得切换盘符,catalina run启动,错误时会提示错误。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
接口及接口的成员变量和成员方法不能声明为 protected,继承的子类才能访问protected类型成员。
浮点数容易精度丢失
java中的数据类型int,double等不是对象,
无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。 基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。为了弥补这个缺陷,java提供了包装类。final 关键字声明类可以把类定义为不能继承的,即最终类;
或者用于修饰方法,该方法不能被子类重写:break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同
在于 StringBuilder 的方法不是线程安全的(不能同步访问)。 由于 StringBuilder 相较于 StringBuffer 有速度优势, 所以多数情况下建议使用 StringBuilder 类。用Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,
包括空格键,Tab键和Enter键.当按下这其中的任一键时,Scanner就会返回下一个输入 当你输入的内容中间包括空格时,使用Scanner就不能完整的获得你输入的字符串. 这时候我们可以考虑使用BufferedReader类取得输入.super关键字:我们可以通过super关键字来实现对父类成员的访问,
用来引用当前对象的父类。重写后的类一般调用子类方法 用super可以调用父类方法
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。 接口中的方法都是公有的。缓冲区中的数据保存直到缓冲区满后才写出,
也可以使用flush方法将缓冲区中的数据强制写出或使用close()方法关闭流, 关闭流之前,缓冲输出流将缓冲区数据一次性写出。new会在堆中新建内存地址
== 对于基本类型是值比较,对于引用类型来说是比较的是引用,
equals 默认情况下是引用比较,只是String,Integer重写了equals 方法, 比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。remove(1) 指的的删除下标为1的数据,如果删除集合中数值1的内容,
应该:remove(new Integer(1))HashSet在存放某个元素时,会先获取该元素的hashcode值,
然后进行一系列的运算,之后确定将元素存放在什么位置; 当存入相同对象时,会放在相同位置,也就是覆盖了add()和put()方法都是集合框架中的添加元素的方法。
但是put()方法应用于map集合中,add()方法应用于collection集合中。 二者的主要区别是:返回值类型不一样。 add()返回布尔(boolean)类型。因为像Set集合中不允许添加重复的元素。 当HashSet调用add()方法时,如果返回false,表示添加不成功。 put()的使用是:添加时出现相同的键,那么后添加的值会覆盖 掉此键对应的原来的值。并返回此键对应的原来的值。不带缓冲的流的工作原理:
它读取到一个字节/字符,就向用户指定的路径写出去,读一个写一个,所以就慢了。 带缓冲的流的工作原理: 读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次性写出去,从而提高了工作效率 优点:减少对硬盘的读取次数,降低对硬盘的损耗。OutputstreamWriter,是writer的子类,将输出的字符流变为字节流
InputStreamReader,是Reader的子类,将输入的字节流变为字符流如果我们使用 newline 函数换行,在本机测试的时候,
因为是 windows 环境,换行符是 \r\n ,打开文件时候自然文件是换行处理,没有问题。当我们部署到服务器时候,服务器是 linux 环境,newline 读取系统换行符是 \r ,导出到文件,
文件的换行符是 \r,当我们把这个文件通过浏览器下载到 windows 时候, 再打开文件将会出现没有换行的问题。因为 windows 下对于 \r 的解释并不是换行符。实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,所以也称为类变量, 只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。 总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。main 方法是被 JVM 调用的,除此之外,main 方法和其它方法没什么区别。
当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
当子类对象调用重写的方法时,调用的是子类的方法,而不是父类中被重写的方法。
要想调用父类中被重写的方法,则必须使用关键字 super。this 关键字是为了解决实例变量(private String name)
和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。数组的特点:有序、数据类型统一
List集合存储元素特点:有序、可以重复 Set集合特点:无序唯一 map特点:key唯一抽象类的子类,必须重写抽象类中所有的抽象方法,非抽象方法可以选择性的重写
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。构造方法:
* 方法名与类名同名,没有返回值,不能写void * 构造方法作用: * 初始化数据 * 创建对象时执行构造方法NULL没有开辟内存地址 ‘ ’空串
Java中所有错误和异常的父类java.lang.Throwable
转载地址:http://iyozi.baihongyu.com/