Java复习简答题及相关小点知识

课后习题简答题

OOP特点面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

JRE它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。

JDK它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,生成后缀名为.class的字节码文件,然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。

Java语言的八种基本数据类型有:byte,short,int,long,float,double,boolean,char。

如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。

break语句可以出现在switch条件语句和循环结构语句中,当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构;当它出现在循环结构语句中时,作用是跳出当前循环结构语句,执行后面的代码。continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。

构造方法满足条件(1)方法名与类名相同;(2)在方法名的前面没有返回值类型的声明;(3)在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束。

Java面向对象有三大特性封装,继承,多态。封装是将对象的属性和行为封装起来,不需要让外界知道具体实现细节;继承是可以在无需重新编写原有类的情况下,对原有类的功能进行扩展;多态指的是在一个类中定义的属性和功能被其他类继承后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同行为特性。

方法重写在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。

多态多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。

抽象类和接口区别在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量、抽象方法、静态方法和默认方法。由于接口的特殊性,在定义时需要使用interface关键字。

String StringBuffer 区别String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

Data Calender 区别和联系Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。 Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。

自动装箱 自动拆箱自动装箱是指将基本数据类型的变量赋给对应的包装类变量,反之,拆箱是指将包装类对象类型直接赋给一个对应的基本数据类型变量。

集合定义 类和接口为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位于java.util包中,统称为集合。集合框架中常用的接口和类有,List、Set、ArrayList、HashSet、Map、HashMap、TreeMap。

List Set Map区别List的特点是元素有序、可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。

Collection Collections区别Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。

IO流概念Java程序通过I/O流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。

字节流字符流区别字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。

NIOJava中的NIO是为替代传统标准的I/O而出现的。与标准的IO相比,Java NIO提供了一种与I/O不同的工作方式。NIO采用内存映射文件的方式来处理输入/输出,它将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了。在标准IO中,使用的是字节流和字符流,而在NIO中,使用的是通道(Channel)和缓冲区(Buffer)。数据总是从通道读入缓冲区,或从缓冲区写入通道。NIO主要有三大核心部分:Buffer、Channel和Selector。其中Buffer可以被看成是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中;Channel是对传统的输入/输出的模拟,在NIO中,所有的数据都需要通过通道流的形式传输;Selector(选择器)用于监听多个通道的事件(例如:连接打开、数据到达等),主要用于多线程处理。

GUI事件监听步骤通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的方法进行重写创建事件源对象和事件监听器对象调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象

Swing布局管理器Swing工具在AWT的基础上提供了8种布局管理器,分别为BorderLayout(边界布局管理器)、BoxLayout(箱式布局管理器)、CardLayout(卡片布局管理器)、FlowLayout(流式布局管理器)、GridBagLayout(网格包布局管理器)、GridLayout(网格布局管理器)、GroupLayout(分组布局管理器)和SpringLayout(弹性布局管理器)。

Swing涉及对象事件源(Event Source):事件发生的场所,通常就是产生事件的组件,例如窗口、按钮、菜单等。事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出相应处理的对象(对象中包含事件处理器)。

实现多线程的方法一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。new Thread() {    public void run(){}}.start();另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。class MyThread implements Runnable{ public void run(){}}另一种就是实现java.util.concurrent.Callable接口,同样是在call()方法中实现运行在线程上的代码。class MyThread implements Callable<Object>{ public Object call() throws Exception{}}

sleep()和wait()方法区别调用sleep(long millis)方法,正在执行的线程主动让出CPU去执行其他线程,在sleep(long millis)方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep(long millis)方法并不会释放锁,即使当前线程使用sleep(long millis)方法让出了CPU,但其他被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()或notifyAll()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。

为什么使用多线程单线程的程序都是从main()方法入口开始执行到程序结束,整个过程只能顺序执行,如果程序在某个地方出现问题,那么整个程序就会崩溃,所以这就说明了单线程在某些方面的脆弱性和局限性。

部分小知识点

线程需调用start()方法,得到资源cpu才能执行  争抢式执行

抽象必须在子类实现 加了final不能被继承

内存回收程序负责释放无用内存 不需要程序员创建线程 无指定时间

构造方法是类的一种方法 方法名与类名相同 没有返回类型

io流 传输数据:字节流字符流 功能:节点流处理流 传输方向:输入流输出流

图形用户界面GUI组件包含在java .awt和java .swing包中

一个对象被当做垃圾释放时 自动调用finalize()

一个应用程序有多条并发执行的线索 称为线程 交替执行

Jvm是java虚拟计算机的简称

JDK中的异常类是Exception类的子类或间接子类

用关键词new创建类的实例对象

封装——>私有化——>private.

java .lang .Runnable是接口 java语言的类都是java .lang .Object 的子类

Java程序分为独立应用程序和小应用程序

int是Java原始数据类型 Integer是Java为提供的封装类

方法覆盖是在子类中定义某方法与其父类有相同的名称和参数。

方法重载是在同一个类中定义多个同名,他们有不同的参数个数或不同的参数类型

面向对象的特征,继承封装多态性

Java的类修饰符  public abstract final

File类位于java.io包中 类 class

Thread类 提供start方法,自动调用run方法

变量分为基本数据类型和引用数据类型

String类返回字符串字符个数方法length()

对话框分为模态对话框和非模态对话框

JAVA三个技术平台,JavaEE JavaSE JavaME

静态域 static属于类的公共域,为该类所有对象所共享

构造方法是类的一个特殊成员,在类实例化对象是被自动调用

普通方法只有在使用时才被调用

String类是不可变类 字符串值一旦初始化后就不能改变

StringBuffer是可变字符串类,类似String的缓冲区,可修改字符串的值

开发与运行java程序,编辑源程序 编译生成字节码 解释运行字节码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值