Java 学习笔记02

Java学习笔记02

要点记录:

  1. 二维数组的维数
    haha [][] // 已定义
    int rowLength=haha.length;// 行数
    int colLength=haha [i].length;// 列数。

2.String有不可变性,每次连接按键中读取的字符串都会构建一个新的String,浪费空间,所以使用StringBuilder。

3.extends 是继承接口,implement 是一个类实现一个接口的关键字。
extends 是继承父类,只要那个类不是声明为 final 或者那个类定义为 abstract 的就能继承,JAVA 中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但 implements 可以实现多个接口,用逗号分开就行了,比如 class A extends B implements C,D,E。
implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改,用implements,只定义接口需要具体实现,或者可以被修改扩展性好,用 extends。

4.创建套接字模板,注意端口号直接写数字

// 创建 Socket 客户端对象
Socket s = new Socket("127.0.0.1",6666);
// 创建 ServerSocket 服务器端对象。
ServerSocket ss = new ServerSocket(6666);
// 监听服务器连接
s = ss.accept();

5.如果 finally 块中有 return 语句的话,它将覆盖掉函数中其他 return 语句。

6.static 表示 “全局” 或者 “静态” 的意思,用来修饰成员变量和成员方法,也可以形成静态 static 代码块,但是 Java 语言中没有全局变量的概念。

static 变量在第一次使用的时候初始化,但只会有一份成员对象。

7.内存泄露的直接表现
java 是自动管理内存的,通常情况下程序运行到稳定状态,内存大小也达到一个 基本稳定的值。但是内存泄露导致 Gc 不能回收泄露的垃圾,内存不断变大.
最终超出内存界限,抛出 OutOfMemoryExpection。

8.已有构造方法A(int a)
调用普通方法:this.A(x);
显式调用父类构造方法:super(x);
在A的其它构造方法中调用该构造方法:this(x)

9.java 语言是强类型语言,支持的类型分为两类:基本类型和引用类型。
基本类型包括 boolean 类型和数值类型,数值类型有整数类型和浮点类型。
整数类型包括:byte、short、int、long 和 char;浮点类型包括:float 和 double
引用类型包括类、接口和数组类型以及特殊的 null 类型。

10.JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.

11.==的作用
针对基本类型:比较的是值是否相同
针对引用类型:比较的是引用是否相同

12.equals本质上就是==只不过String和Integer等重写了equals方法,所以变成了值的比较,要不然equals比较具有相同值的两个对象,结果还是false。

13.final在java中的作用

  • final 修饰的类叫最终类,该类不能被继承。
  • final 修饰的方法不能被重写。
  • final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

14.java 中的 Math.round (-1.5) 等于多少?
等于 -1,因为在数轴上取值时,中间值(0.5)向右取整,所以正 0.5 是往上取整,负 0.5 是直接舍弃。

15.String不属于基础数据类型,是一个对象。

16.java 中操作字符串都有哪些类?它们之间有什么区别?

操作字符串的类有:String、StringBuffer、StringBuilder。

String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

17.String str="i" 与 String str=new String ("i") 一样吗?

不一样,因为内存的分配方式不一样。String str="i" 的方式,java 虚拟机会将其分配到常量池中;而 String str=new String ("i") 则会被分到堆内存中。

18.字符串反转示例代码


// StringBuffer reverse
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); 
// gfedcba
// StringBuilder reverse
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); 
// gfedcba

19.String 类的常用方法都有那些?

  • indexOf ():返回指定字符的索引。
  • charAt ():返回指定索引处的字符。
  • replace ():字符串替换。
  • trim ():去除字符串两端空白。
  • split ():分割字符串,返回一个分割后的字符串数组。
  • getBytes ():返回字符串的 byte 类型数组。
  • length ():返回字符串长度。
  • toLowerCase ():将字符串转成小写字母。
  • toUpperCase ():将字符串转成大写字符。
  • substring ():截取字符串。
  • equals ():字符串比较。

20.抽象类不一定要有抽象方法

普通类不能包含抽象方法,抽象类可以包含抽象方法。抽象类不能直接实例化,普通类可以直接实例化。

21.抽象类不能使用final修饰
定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类。

22.Files 的常用方法都有哪些?

  • Files.exists ():检测文件路径是否存在。
  • Files.createFile ():创建文件。
  • Files.createDirectory ():创建文件夹。
  • Files.delete ():删除一个文件或目录。
  • Files.copy ():复制文件。
  • Files.move ():移动文件。
  • Files.size ():查看文件个数。
  • Files.read ():读取文件。
  • Files.write ():写入文件。

https://mp.weixin.qq.com/s?__biz=MzIwMTY0NDU3Nw==&mid=2651938287&idx=2&sn=5d983591e8d8206af557ad9e45431173&chksm=8d0f32a1ba78bbb772cf14abd54ea463e564b74a8eeb8323d8fbbb0b49210cda2a8c1718c5a5&scene=21#wechat_redirect

原文地址:https://www.cnblogs.com/JackKing-defier/p/11155358.html