【复习笔记】—java基础

第一章:Java开发入门

1、简述java的特点。
面向对象、跨平台、健壮性、安全性、可移植性、多线程性、动态性。
2、简述JRE和JDK的区别。
JRE(Java Runtime Environment,java 运行时环境),它相当于操作系统的部分,提供了java程序运行时所需要的基本条件和许多Java基础类,例如:IO类、GUI控制组件、网络类。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么你的计算机上必须安装JRE。
JDK(Java Developement Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具和多种与开发相关的工具类,是提供给开发人员使用的。初学者学习和使用Java时,首先必须下载和安装JDK。JDK中已经包含JRE部分 。
3、简述Path和ClassPath的区别。
path环境变量是系统环境变量的一种,它用于保存一系列可执行文件的路径,每个路径之间要以分隔符隔开。当命令行窗口运行一个可执行文件,操作系统会在当前目录下查找手否存在此文件,如果不存在,则在path环境变量中定义的路径下去查找,如果没有,则系统会报error。
classpath环境变量也是系统环境变量的一种,它用于保存一系列类(.class)文件的路径。当java虚拟机需要运行一个类时,会先在classpath环境变量中所定义的路径下去寻找所需的class文件。如果classpath的路径最后有分号,则在classpath中找不到时,在到当前的路径下找。如果最后无分号,则只在classpath设置的路径中查找。
4、请说说你对JVM的理解
JVM是Java Virtual Machine 的缩写,全称是java虚拟机。java语言的一个非常重要的特性就是跨平台性,Java虚拟机是实现这一特性的关键,不同系统使用不同的虚拟机版本,这种方式使得java语言能“一次编译,到处运行”。Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改的运行。java虚拟机在执行字节码时,把自己饿吗解释成具体平台上的机器指令执行。

第二章: Java编程基础

1、请列举Java语言中的八种基本数据类型,并说明每种数据类型占用的空间大小。
byte字节型—>1字节、
short 短整型–>2字节
int 整型 —>4字节
long 长整型—>8字节
double 双精度浮点型–>8字节
float 单精度浮点型—>4字节
char 字符型---->2字节
boolean 表示逻辑值—>true or false 分别占一个字节。
2、简述&&与&的区别。
如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会进行运算。
如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行右边的表达式。
3、什么是方法重载?
方法重载是指在一个类中声明多种同名方法,这些方法的返回值类型相同,参数的个数或者数据类型不同,调用这些同名方法时,JVM会根据实际参数的不同绑定到不同的方法。
4、char类型的变量能不能存储一个中文汉字?请说出理由。
char型变量是用来存储Uncode编码的字符的,Unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字。不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。
5、简述break、continue、return语句的区别。
break语句: 在switch条件语句和循环语句中都可以使用break语句。

  •    当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
    
  •    当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
    
    continue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
    return语句:return语句可以用于当前的方法中退出,返回到调用的方法的语句处,继续执行。
    return返回一个值给调用的方法的语句处,继续执行。return返回一个值给调用该方法的语句,返回值的数据类型与方法声明中的返回值的类型一致。

第三章 面向对象(上)

1、构造方法和普通成员方法有什么区别?
构造方法是类的一个特殊成员,它会在类实例化对象时自动调用。
而普通方法只有在使用的时候才去声明。
在定义构造方法时要去构造方法和类名相同、在方法名前面没有返回值类型、在方法中不能使用return语句返回一个值。
2、单例模式具有哪些特点?
单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
3、请简述垃圾回收的优点和原理。
Java语言中一个显著的特点就是引入了垃圾回收机制,使得Java程序员在编写程序的时候不在需要考虑内存管理。垃圾回收机制可以有效的防止内存泄漏,有效的利用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或者所有对象进行垃圾回收。
4、请说说你知道的Java中的代码块。

  • 静态代码块:在Java类中,使用一对大括号包括起来若干行代码被称为代码块,用static关键词修饰的代码块称为静态代码块。当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。在程序中,通常会使用静态代码块来对类的成员变量进行初始化。
    
  • 构造代码块:直接在类中定义的没有加static关键词的代码块成为构造代码块。构造代码块在每次创建对象的时候都会执行。
    
  • 普通代码块:在方法或语句中出现的代码块就成为普通代码块。普通代码块和一般的语句执行的顺序是一样的。
    
  • 同步代码块:java对于多线程的安全问题提供了专业的解决方法,就是同步代码块。
    

第四章 面向对象(下)

1、什么是方法重写?
在继承系统中,子类方法与父类的某一方法具有相同的方法名、返回值类型、参数列表,则称子类的该方法重写或覆盖父类方法。
2、什么是多态?
多态以为值一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据引用子类对象的特性,程序会找到不同的运行效果。
3、抽象类和接口的区别有哪些?
在java中,使用abstract关键字修饰的类成为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。
4、请简述方法重写和方法重载的区别?

  • 方法重写 :在继承系统中,子类方法与父类的某一方法具有相同的方法名、返回值类型、参数列表,则称子类的该方法重写了父类的方法;
  • 方法重载:如果在一个类中定义了多个同名方法,他们有不同的参数列表、参数类型,则称为方法重载。
    5、请简述Error和Exception有什么区别?
    Error表示恢复不是不可能,但是很困难的情况下的一种严重问题,比如内存溢出。仅是修改程序本身的不能处理这样的问题的。
    Exxception表示程序本身可以处理的错误,在开发Java程序中进行的异常处理,都是针对Exception类及其子类。