• Java复习第四天


    1、Object类

    (1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。

    (2)Object类的构造方法有一个,并且是无参构造;子类构造方法默认访问父类的构造是无参构造

    (3)要掌握的方法:

         A:toString()

    返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。一般子类都会重写该方法。

    B:equals()

               比较两个对象是否相同。默认情况下,比较的是地址值是否相同。而比较地址值是没有意义的,所以,一般子类也会重写该方法。

    (4)要了解的方法:

         A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。

         B:getClass() 返回对象的字节码文件对象

         C:finalize() 用于垃圾回收,在不确定的时间

         D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。

    2、Scanner的使用

    (1)在JDK5以后出现的用于键盘录入数据的类。

    (2)构造方法:

         A: System.in 它其实是标准的输入流,对应于键盘录入

         B:构造方法

              InputStream is = System.in;

              Scanner(InputStream is)

         C:常用的格式

              Scanner sc = new Scanner(System.in);

    (3)基本方法格式:

         A:hasNextXxx() 判断是否是某种类型的

         B:nextXxx()   返回某种类型的元素

    (4)要掌握的两个方法

         A:public int nextInt()

         B:public String nextLine()

    (5)需要注意的小问题

         A:同一个Scanner对象,先获取数值,再获取字符串会出现一个小问题。

         B:解决方案:

              a:重新定义一个Scanner对象

              b:把所有的数据都用字符串获取,然后再进行相应的转换

    ------------------------------------------------------------------

    3、String类的概述和使用

    (1)多个字符组成的一串数据。可以和字符数组进行相互转换。

    (2)构造方法:

         A:public String()

         B:public String(byte[] bytes)

         C:public String(byte[] bytes,int offset,int length)

         D:public String(char[] value)

         E:public String(char[] value,int offset,int count)

         F:public String(String original)

         G:String s = "hello";不是构造方法,但结果也是一个字符串对象

    (3)字符串的特点

         A:字符串一旦被赋值,就不能改变。

              注意:这里指的是字符串的内容不能改变,而不是引用不能改变。

         B:字面值作为字符串对象和通过构造方法创建对象的不同

    ------------------------------------------------------------------

    4、StringBuffer

    (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了一个字符串缓冲区类。StringBuffer供我们使用。

    (2)StringBuffer的构造方法

         A:StringBuffer()

         B:StringBuffer(int size)

         C:StringBuffer(String str)

    (3)StringBuffer的常见功能

         A:添加功能B:删除功能

         C:替换功能D:反转功能

         E:截取功能

    (4) 注意的问题

         StringBuffer:同步的,数据安全,效率低。

         StringBuilder:不同步的,数据不安全,效率高。

         String作为形式参数,StringBuffer作为形式参数。

    5、正则表达式

    (1)就是符合一定规则的字符串

    (2)常见规则

         A:字符

              x 字符 x。举例:'a'表示字符a

              \ 反斜线字符。

              新行(换行)符 ('u000A')

              回车符 ('u000D')

         B:字符类

              [abc] a、b 或 c(简单类)

              [^abc] 任何字符,除了 a、b 或 c(否定)

              [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

              [0-9] 0到9的字符都包括

         C:预定义字符类

              .任何字符。我的就是.字符本身,怎么表示呢? .

              d 数字:[0-9]

              w 单词字符:[a-zA-Z_0-9]

              在正则表达式里面组成单词的东西必须有这些东西组成

         D:边界匹配器

              ^ 行的开头

              $ 行的结尾

               单词边界            

         E:Greedy 数量词

              X? X,一次或一次也没有

              X* X,零次或多次

              X+ X,一次或多次

              X{n} X,恰好 n 次

              X{n,} X,至少 n 次

              X{n,m} X,至少 n 次,但是不超过 m 次

    ------------------------------------------------------------------

    6、多线程

    (1)多线程:一个应用程序有多条执行路径

         进程:正在执行的应用程序

         线程:进程的执行单元,执行路径

         单线程:一个应用程序只有一条执行路径

         多线程:一个应用程序有多条执行路径

         多进程的意义?

              提高CPU的使用率

         多线程的意义?

              提高应用程序的使用率

    (2)Java程序的运行原理及JVM的启动是多线程的吗?

         A:Java命令去启动JVM,JVM会启动一个进程,该进程会启动一个主线程。

         B:JVM的启动是多线程的,因为它最低有两个线程启动了,主线程和垃圾回收线程。

    (3)多线程的实现方案

         A:继承Thread类

         B:实现Runnable接口

     (4)线程的调度和优先级问题

         A:线程的调度

              a:分时调度

              b:抢占式调度 (Java采用的是该调度方式)

         B:获取和设置线程优先级

              a:默认是5

              b:范围是1-10

    (5)线程的控制(常见方法)

         A:休眠线程B:加入线程

         C:礼让线程D:后台线程

         E:终止线程

    (6)线程的生命周期

         A:新建B:就绪C:运行

         D:阻塞E:死亡 

  • 相关阅读:
    微软校园招聘  研发工程师A
    版本号排序
    腾讯2018校园招聘  研发工程师笔试题(三)
    好词好句
    HikariCP 连接最快的连接池
    Ubuntu 18.04.1 安装java8
    Ubuntu 18.04.1 安装mysql 5.7.27
    markdown 插入链接
    面试题 int(3) int(10) 区别
    采购单(京东2017秋招真题)
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4655141.html
Copyright © 2020-2023  润新知