Java基础(一)

面向对象和面向过程的区别

面向过程性能方面比面向对象高,维护,拓展,复用方面,面向对象的要高于面向过程(注重性能方面,用面向过程语言,比如单片机和嵌入式;面向对象有封装,继承,多态,设计低耦合系统)

JAVA语言特点

(1)面向对象(封装,继承,多态)
(2)平台无关性
(3)可靠性
(4)安全性
(5)支持多线程(相对于C++方便,C++需要调用系统多线程来设计多线程功能操作)
(6)支持网络编程且很便捷
(7)编译和解释并存

JVM,JDK和JRE

(1)JVM:运行Java字节码(.class文件)的虚拟机,具有跨平台性。(流程:.java文件->JDK的javac编译->.class文件->JVM识别操作->二进制可执行文件)
(2)注意:.class->二进制执行文件,此过程中,JVM会一行一行的解释形成二进制机器码,不过解释方式效率过低,之后又引进了JIT编译器,效率补上了解释器的漏洞,因此称Java是编译与解释并存的语言 (3)JDK:是SDK(软件开发工具)的一个子集,拥有JRE所有的一切,还有javac编译器和其他工具(4)JRE:Java运行时环境,包括JVM(虚拟机),Java类库和Java命令

Java和C++的区别

(1)都是面向对象,都可以完成封装,继承和多态
(2)Java不可以使用指针来访问内存,程序内存更加安全
(3)Java是单继承,C++可以多继承,但是Java可以接口多实现
(4)Java拥有自动内存管理机制,无需程序员手动释放没用内存

Java中应用程序和小程序区别

应用程序是从主线程启动(也就是main方法),applet小程序没有main()方法,主要嵌套在浏览器页面上运行(调用init()或run()方法来启动)

字符型常量和字符串常量的区别

(1)形式上:字符型常量是用单引号引起的一个字符;而字符串常量是双引号引起的若干个字符
(2)含以上:字符常量相当于一个整型值(ASCII值),可以参加表达式运算;字符串常量却是代表一个地址值
(3)占内存大小:字符型常量char在Java中占有两个字节;而字符串常量占若干个字节。

构造器(构造方法)Constructor是否也可被override

首先父类的私有方法和构造方法是不可以被继承的,所以构造器(构造方法)也不可以被override(重写),但是可以overload(重载:例如一个类有多个构造函数)

封装,继承和多态

(1)封装:把一个对象的属性私有化,同时提供一些可以被外界访问的属性和方法;
(2)继承:是使用已经存在的类作为基类建立新类的技术,新类可以复用父类的方法和属性,也可以新增父类所没有的属性和方法,记得父类的私有属性和方法不可以被重写
(3)多态:Java中实现多态的两种方式:继承(多个子类对同一方法的重写);接口(实现接口并覆盖接口中的同一方法)

String StringBuffer和StringBuilder区别

(1)String是不可变的(不可变是因为它底层代码被final修饰),线程是安全的。例如:

String a = "abcd";
a = "1234";
system.println.out("s = " + s);

虽然输出到控制台s = 1234;但是a的那段内存空间里面还是存在abcd的,只不过a指向了之后赋值的那段内存值。
(2)StringBuffer和StringBuider恰恰和String相反,没有final修饰,赋值是可变的;不过StringBuffer是线程安全的,StringBuilder是线程不安全的。

自动装箱和拆箱

一段代码献上助解:

Integer a = 99;
//将基本数据类型(int)自动转为包装类型(integer)--装箱
int b = a;
//将包装类型(integer)自动转为基本数据类型(int)--拆箱
posted @ 2019-08-09 00:06  成小弟  阅读(134)  评论(0编辑  收藏  举报