测试必备之Java知识(一)———— Java基础

Java如何运行的?

开发的java源代码,通过javac编译成为平台无关的字节码文件(class),然后通过JVM的解释器将字节码解释成对应的机器码

“一次编译,到处运行”的理解

说的是java的跨平台特性,与JVM密不可分,不同环境和平台安装好JDK就有java运行环境,并不是说java是跨平台语言;到处运行的关键和前提是JVM,在可以运行JVM的地方都内含着一个JVM操作系统,从而使Java提供了各种不同平台上的虚拟机制,因此实现了到处运行的效果

JDK、JRE、JVM的区别

JDK java开发工具包
JRE java运行时环境,包含JVM和Java类库
JVM 虚拟机,运行java字节码的运行时环境

什么是封装,继承,抽象?

封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式--安全性、复用性
继承 is-a的关系,子类接受共有的属性和方法,并加入独有的属性和方法
抽象 共有的方法名和类,具体实现交给子类

继承注意事项

1、子类只能继承父类所有非私有的成员(成员方法、成员变量)

2、子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法

equals和==的区别

== 比较的是变量在内存中堆内存地址,判断两个对象的地址是否相同,即是否指向同一个对象
equals 比较两个对象内容是否相等,Object类也有equals,但调用==,如果类不重写equals方法,则调用Object的equals

HashCode和equals的一些约定

a:equals 相等,hashCode 一定要相等

b:重写了 hashCode 也要重写 equals

c:hashCode 需要保持一致性,状态改变返回的哈希值仍然要一致

怎么理解多态?好处?为什么要用多态?

多态:父类的引用指向子类

好处:子类的功能可以被父类的方法或引用变量所调用

为什么用:复用性,高内聚低耦合,可扩展性

super和this的区别

this 代表本类的对象引用
super 代表本类的父类的引用,代表父类存储空间的标识

代码块执行顺序

静态代码块(只执行一次)-> 构造代码块(每次执行构造方法前都执行)-> 构造方法

普通类初始化顺序

静态属性(变量、方法)-> 静态代码块-> 成员属性 -> 构造代码块 -> 构造函数

继承的子类初始化顺序

父类静态属性 -> 父类静态代码块 -> 子类静态属性 -> 子类静态代码块 -> 父类成员变量 -> 父类构造代码块 -> 父类构造方法 -> 子类成员变量 -> 子类构造代码块 -> 子类构造方法

final、finally、finalize的区别


final


修饰类:类不可被继承

修饰变量:基本数据类型的变量不可重新赋值,引用类型的变量不可指向其他对象

修饰方法:方法不可被重写,即该方法无需进行扩展


finally

finally语句块总会被执行,通常是资源的回收(数据库关闭,IO关闭,网络关闭等)

finalize

保证对象在被垃圾收集之前完成特定的资源回收

Java异常类相关

Error 未检查异常,系统级别错误,无法恢复和预防,如系统崩溃,虚拟机错误,内存空间不足
Exception 分RuntimeException(未检查)和IOException(需检查),程序级别错误,可恢复和预防,创建一个类继承Exception是需检查异常
throw 用在方法体内,抛出异常对象名,可以抛出任意Throwable,需由方法体内的语句或throws抛出处理
throws 用在方法名后,跟的是异常名,表示可能抛出异常,并不一定发生这些异常,由方法调用者处理异常

接口和抽象类的区别

接口
1、不包含非常量成员

2、都是静态抽象方法,可多继承

3、只能public,没有构造方法,没有main函数不可运行

4、主要作用:API定义和实现分离的目的

抽象类
1、可以有普通成员变量

2、可有成员方法也可有抽象方法,单继承

3、public、protected、private都可以,有构造方法,有main函数

4、主要作用:代码重用

原文地址:https://www.cnblogs.com/poloyy/p/12116913.html

时间: 2024-08-05 10:25:59

测试必备之Java知识(一)———— Java基础的相关文章

Java知识体系之基础知识

1. What is Java? Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 . 2. Who create it? 任职于Sun公司(Stanford University Network斯坦福网络公司)的詹姆斯·高斯林和麦克·舍林丹等人于1990年代初开发Java语言的

Java知识整理--Java的List用法

list中可以添加任何对象,举例: class Node { ..... } 上面定义了一个Node类,下面使用List Node n1 = new Node(); Node n2 = new Node(); List list=new ArrayList(); list.add(n1); list.add(n2); //这里是将对象加入到list中 for(int i=0;i<list.size();i++){//利用循环,将Node对象全部一一取出 Node n = (Node)list.g

[Java面试三]JavaWeb基础知识总结.

1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. l 静态web资源开发技术 • Html l 常用动态web资源开发技术: • JSP/Servlet.ASP

[基础] Java目录(摘自Java核心技术·卷1 基础知识)

Java核心技术·卷1 基础知识(原书第9版) 第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java"白皮书"的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系结构中立 1.2.7 可移植性 1.2.8 解释型 1.2.9 高性能 1.2.10 多线程 1.2.11 动态性 1.3 Java applet与Internet 1.4 Java发展简史 1.5 关于Java的常见误解

Java并发(基础知识)—— Java中断机制

上文讲解了Java线程的创建.启动以及停止,在讲到停止线程时说到了Java中断,Java中断是停止线程的一种协作机制,本文打算对Java中断机制进行详细讲解. 在网上搜索Java中断机制,发现两篇好文章,分别如下:Java 理论与实践: 处理 InterruptedException 以及 详细分析Java中断机制,推荐大家仔细阅读. 中断是一种协作机制 必须记住,中断是一种协作机制.当一个线程中断另一个线程时,被中断的线程不一定要立即停止正在做的事情.相反,中断是礼貌地请求另一个线程在它愿意并

[Java面试二]Java基础知识精华部分.

一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发: JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础: JAVA

Java中String的基础知识

Java中String的基础知识 ==与equal的区别 基本数据类型,指的是java中的八种基本数据结构(byte,short,char,int,long,float,double,boolean),一般的比较是使用的 ==,比较的是他们的值. 复合数据类型(类) ==比较的是两个对象的引用,可以理解为在内存中的地址,除非是同一个new出来的对象,他们的 ==为true,否则,都为false. equal是object中的方法.object中的实现如下,内部还是使用==实现,也就是说,如果一个

Java多线程完整版基础知识

Java多线程完整版基础知识 (翟开顺由厚到薄系列) 1.前言 线程是现代操作系统中一个很重要的概念,多线程功能很强大,java语言对线程提供了很好的支持,我们可以使用java提供的thread类很容易的创建多个线程.线程很不难,我对之前学习过的基础,在这做了一个整理,本文主要参考的是Java研究组织出版的j2se进阶和张孝祥-java就业培训教材这两本书 2.概述 2.1线程是什么 主要是线程与进程的区别,这里不再阐述,自行网上搜索 为什么使用线程:操作系统切换多个线程要比调度进程在速度上快很

学习Spring必学的Java基础知识(7)----事务基础知识

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www.iteye.com/topic/1123293 [3] 属性

java培训 java49条基础知识

java培训这篇文章主要是给大家重新温习一下java的一些基础方面的知识,毕竟基础的知识得掌握牢固,俗话说万丈高楼平地起,基础一定得掌握好! 1.Java中成员变量又分为实例成员变量 和类成员变量. 2.写类的目的是为了描述一类事物共有的属性 和功能. 3.成员变量和局部变量的类型可以是Java中的任何一种数据类型 . 4.用修饰符 static 说明的成员变量是类变量. 5.变量的名字与成员变量的名字相同,则成员变量被隐藏 ,该成员变量在这个方法内暂时失效. 6.用修饰符static说明的成员