牛客网Java错题总结(12)

本文详细介绍了Java的编译与运行指令,包括javac和java命令的使用,以及JVM内存区域的构成,如程序计数器、虚拟机栈、本地方法栈、堆和方法区。同时,探讨了Linux中tar命令的不同选项,如-c、-x、-t、-r和-u。此外,还讲解了Unicode处理流在InputStreamReader、BufferedReader和Writer类中的应用,以及Object类的基本方法。最后,概述了面向对象编程的核心特性:多态、继承和封装,以及构造方法的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Java编译和运行指令

二、linux中tar用法

三、Unicode处理流

四、JVM的内存区

五、Object对象

六、面向对象

七、构造方法


 

一、Java编译和运行指令

解析:

  • A:运行命令是java + 程序的名字但是不加后缀,所以这道题错在多了 .class这个后缀
  • B  正确
  • C:javac 是编译命令,后跟程序名字加后缀,也就是YourClassName.java 所以答案正确
  • D:JVM(Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确

 

二、linux中tar用法

解析:

  • 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个
    • -c:建立压缩档案
    • -x:解压
    • -t:查看内容
    • -r:向压缩归档文件末尾追加文件
    • -u:更新原压缩包中的文件
  • 下面的参数是根据需要在压缩或解压档案时可选
    • -z:有gzip属性的
    • -j:有bz2属性的
    • -Z:有compress属性的
    • -v:显示所有过程
    • -O:将文件解开到标准输出
  • 下面的参数-f是必须
    • -f:使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

 

三、Unicode处理流

解析:

  • InputStreanReader的构造函数
    • InputStreamReader(InputStream in):创建一个使用默认字符集的 InputStreamReader
    • InputStreamReader(InputStream in, Charset cs):创建使用给定字符集的 InputStreamReader
    • InputStreamReader(InputStream in, CharsetDecoder dec):创建使用给定字符集解码器的 InputStreamReader
    • InputStreamReader(InputStream in, String charsetName):创建使用指定字符集的 InputStreamReader
  • BufferedReader的构造函数
    • BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流
    • BufferedReader(Reader in, int sz):创建一个使用指定大小输入缓冲区的缓冲字符输入流
  • Writer的构造函数
    • Writer():创建一个新的字符流 writer,其关键部分将同步 writer 自身
    • Writer(Object lock):创建一个新的字符流 writer,其关键部分将同步给定的对象
  • PipedInputStream的构造函数
    • PipedInputStream():创建尚未连接的PipedInputStream
    • PipedInputStream(int pipeSize):创建一个尚未连接的PipedInputStream,并对管道缓冲区使用指定的管道大小
    • PipedInputStream(PipedOutputStream src):创建PipedInputStream,使其连接到管道输出流src
    • PipedInputStream(PipedOutputStream src, int pipeSize):创建一个PipedInputStream,使其连接到管道输出流src,并对管道缓冲区使用指定的管道大小

 

四、JVM的内存区

解析:

JVM内存区:程序计数器、虚拟机栈、 本地方法栈、堆、方法区(包括常量池)。

不属于JVM内存区:直接内存(Direct Memory),用户I/O操作

注意:实例变量存储在堆中,静态变量存储在方法区中,但是变量不属于内存区域,所以不选!

 

五、Object对象

解析:

Object类的方法

  • clone():创建并返回此对象的一个副本
  • toString():返回该对象的字符串表示
  • wait():在其他线程调用此对象的notify()方法或者notifyAll()方法前,导致当前线程等待
  • notify():唤醒在此对象监视器上等待的单个线程
  • notifyAll():唤醒在此对象监视器上等待的所有线程
  • finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
  • equals():指示其他对象是否与此对象相等
  • getClass():返回此Object的运行时类
  • hashCode():返回该对象的哈希码值

 

六、面向对象

解析:

对应着面向对象的三大特性:A.多态 B.继承 C.封装

 

七、构造方法

解析:

1、super()表示调用父类构造函数、this()调用自己的构造函数,而自己的构造函数第一行要使用super()调用父类的构造函数,所以这俩不能在一个构造函数中会出现重复引用的情况

2、super()和this()必须在构造函数第一行,所以这一点也表明他俩不能在一个构造函数中

3、this()和super()都指的是对象,所以都不可以在static环境中使用。包括:static变量,static方法,static语句块(里面不能使用非static类型的)。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值