返回 登录
7

java基础概念

阅读2706

下文将罗列在实际学习开发中遇到的容易忘记的知识点,虽然简单,但有必要记下来随时查看。

概念1:

try-catch-finally块中,finally块在以下几种情况将不会执行。

(1)finally块中发生了异常。

(2)程序所在线程死亡。

(3)在前面的代码中用了System.exit();

(4)关闭了CPU

概念2:

泛型是什么?

答:泛型主要解决安全和代码重用率的问题,它有自动装箱和拆箱的功能。利用与一个不确定的类型来表示任意一个类型,而且泛型通过一个反射机制可以获得这个类的一系列信息,从而提高代码的优越性。

概念3:

Java中的前期绑定和后期绑定

答:前期绑定指在编译时即能确定的类型。

    后期绑定指在编译时不确定类型,在运行时确定类型。

概念4:

面向对象

答:首先:面向对象是一种思想,基于面向过程,可以将复杂问题简单化。其次:它使我们从执行者变为了指挥者,比如说公司现在就是在用面向对象的思维来思考解决问题。公司招人,说明公司在发展壮大,需要一些具备专业编程的人来做事情,从而实现公司的盈利。而我就是那个具备编程能力的对象,所以这就是一种面向对象的思想。

概念5:

static和final变量:

答:static如果没有初值,默认是0;final变量则必须赋初值。

概念6:

String,StringBuffer以及StringBuilder之间的关系

(1)线程安全

StringBuffer 线程安全
StringBuilder 线程不安全

(2)速度

一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的。

(3)总结

如果要操作少量的数据用 = String
单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

概念7:

HTTPS和HTTP的区别

答:超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提 供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息, 比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

区别如下:

(1)https协议需要到ca申请证书,一般免费证书很少,需要交费。

(2)http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

(4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

概念8:

for循环的判断

(1)for(int i=5, j=10; i<10; i++){ } 此语句不会发生编译错误。

(2)int i;

for(i=5, int j=10; i<10;i++, j++){ } 此语句将发生编译错误。

(3)for(int i=5,j=10; i<10,j>5; i++){ } 此语句将发生编译错误,因为语句2的返回值必须为true或者false。

概念9:

Java数据类型

java数据类型图:
┏数值型━┳━整数型:byte short int long
┏基本数据类 型——-┫ ┗━浮点型:float double
┃ ┣字符型:char
数据类型——╋ ┗布尔型:boolean
┃ ┏类(class)
┗引用数据类型━━╋接口(interface)
┗数组(array)

引用类型 就是在变量中存储的不是值而是一个内存中的地址的数据类型。也就是说 变量中存储了这个变量的值所在内存中的地址 每次调用这个变量都是引用这个地址而得到真正的值 所以叫引用类型。

概念10:

Java常见的异常类型:

数组角标越界,空指针异常类,算术异常,字符串转换为数字异常,类型不存在异常

概念11:

Java中常见的四种监听方式:

(1)让包含“事件源”的容器对象来担任监听者。即jb.addActionListener(this);this指代一个JFrame对象。

(2)定义内部类来担任监听者。

(3)使用匿名内部类来担任监听者。

jb.addActionListener(new ActionListener()
{

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub                
            System.exit(0);
        }

    });

(4)使用外部类来实现监听。

概念12:

Java中为什么会出现空指针异常?

(1)所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。
(2)所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向nul了,就是空指针。
(3)所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.wait(1000);那么就会产生空指针异常。

概念13:

Java是解释型还是编译型语言?

答:Java比较特殊,.java文件经过编译之后,再利用解释的方式在运行。

 即,经过编译之后形成了字节码文件(.class)文件,字节码文件可以跨平台运行。其可以在任何一种操作系统中的任何一个JVM上来被解释运行,即JVM是一个字节码解释器。

 所以,Java先编译,再解释。

概念14:

静态和非静态的区别:

答:(1)首先静态方法中只能有静态成员变量,不能有非静态的普通成员变量。

                    非静态方法中,没有限制。

     (2)其次,在访问方式上。 静态方法只能访问静态方法,不能访问非静态的普通方法。

                    非静态方法则没有限制。

概念15:

接口与抽象类的区别:

答:(1)接口里得数据成员必须是静态的,而且必须被初始化。

    (2)接口里得方法必须全部为abstract(即全为抽象方法)。
评论