zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JS身份证验证 根据身份证计算生日 年龄
    手机号码归属地TXT文档数据写入DB
    页面返回 上一页 下一页
    ASP.NET 出错页面处理
    添加外鍵
    WinForm Read Excel
    Winform 中实现省市联动效果
    微信支付之二维码支付(native)
    C#多线程同步(转)
    HTTP超文本传输协议HTTP/1.1中文版(收藏)
  • 原文地址:https://www.cnblogs.com/JackKing-defier/p/11155358.html
Copyright © 2011-2022 走看看