第一章:Java基础知识(面试笔试工作必备)(1/1)

我们马上记住本站网址,www.baikecu.com,若被浏/览/器/转/码,可退出转/码继续阅读,感谢支持.

接下来我们从【Java定义】、【编程环境】、【编程工具】、【常见面试题】这四方面来入手,开启Java基础学习之路。

【Java定义】

主要从以下方面开始讲解:

1、Java概念

2、Java语言特点

3、Java编程范围

4、Java运行原理

5、Java基本包java.lang

6、Java的类与接口

7、Java的IO流

一、Java概念

Java是一门功能强大、简单易用,且半编译半解释的面向对象OPP这类的高级编程语言。

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

二、Java语言特点

功能强大,简单易用。

简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性……

三、Java编程范围

1、Web应用程序(JavaEE)

2、移动端应用程序(JavaME,即分布式系统和嵌入式系统应用程序)

3、桌面应用程序(JavaSE)

……

四、Java运行原理

Java源文件.java——执行javac.exe编译器的javac命令——>将.java源文件编译为方便机器读取的.class字节码文件——执行JVM中java.exe解释器的java命令——>将.class字节码文件加载到Java虚拟机JVM中便可识别读取正常运行了。

Java源程序(.java文件),执行编译器javac命令(javac.exe)…

将.java源文件,编译为.class字节码文件。

然后Java字节码文件(.class文件),再由Java解释执行器(java.exe)…

将字节码文件.class,加载到Java虚拟机(JVM)之中。

最后,字节码文件.class,就会在Java虚拟机JVM之中执行了。

五、Java基本包java.lang

包中有接口和类。

接口:

parable、eable、Runable等

类:

包含八个基本数据类型的封装类…

分别是Byte、Short、Integer、Long、Boolean、Character、Float、Double。

以及其它类。

……

六、Java的类与接口

在Java中,是“单继承多实现”的。

也就是说,一个人类只能继承一个父类,而它却可以实现多个接口。

其中…

接口可以继承接口。

抽象类可以实现(implements)接口。

抽象类可以继承实体类,但前提是,实体类必须有明确的构造函数。

匿名内部类(Anonymous Inner Class )既可以继承(extends)其它类,也可以实现(implements)接口(Interface),在Swing编程中常用此方式。

1、Diary类

主要用于将关键字转换成值,该类接收一个关键字并返回一个值。

Diary是一个抽象类,它是Hashtable的超类。

2、Properties类

它扩展了Hashtable类。

但Properties对象的关键字和值必须是String类型。

并能将对象写入一个输出流,并保存在一个文件中,然后可以把它读回一个输入流。

七、Java的IO流

字节流:

数据在存储时与传输时都是以字节为单位进行的。

通常用于读写二进制数据,如图像和声音文件。

字符流:

数据在存储与传输时,都是以字符为单位进行的。

流:

对数据源的一种抽象,其目的是想用统一的方式访问各种不同的数据源(文件、网络、内存的缓冲区)。

文件读写的基本类:

File类提供定位本地文件系统,描述文件和目录的功能。

管道流用于在线程之间通信:

PipedInputStream、PipedOutputStream、PipedReader、PipedWriter。

【编程环境】

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。

JDK是整个Java的核心。

它包括了Java运行环境JRE(Java Runtime Enviro),以及一些Java工具,还有Java的核心类库(Java API)。

所以说,不论是什么Java应用服务器,实质上都是内置了某个版本的JDK。

主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK。

例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Enviro)。

JRE是支持Java程序运行的标准环境。

JRE是个运行环境,JDK是个开发环境。

因此,写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。

而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。

但,由于JDK包含了许多与运行无关的内容,占用的空间较大。

因此,运行普通的Java程序无须安装JDK,而只需要安装JRE即可。

【编程工具】

1、Eclipse:

它是免费的,所以颇受开发公司青睐。

一个开放源代码的、基于Java的可扩展开发平台。

2、Beans:

开放源码的Java集成开发环境,适用于各种客户机和Web应用。

3、IntelliJ IDEA:

在代码自动提示、代码分析等方面的具有很好的功能。

4、MyEclipse:

它是收费的,其功能很强大且实用。

它是由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。

5、EditPlus:

如果正确配置Java的编译器“Javac”(javac.exe)以及解释器“Java”(java.exe)后,便可直接使用EditPlus,进行编译执行Java程序了。

【常见面试题】

一、ArrayList和Vector的区别?

答…

两者主要有以下两点区别:

1、同步性不同

Vector是线程安全的,也就是说是同步的。

而ArrayList,不是同步的,它是线程序不安全的,是异步的。

2、数据增长不同

当需要增长时…

Vector默认增长为原来的一培。

而ArrayList,却是原来的一半。

二、ArrayList,Vector, LinkedList的存储性能和特性?

ArrayList和Vector都是使用数组方式存储数据。

此数组元素数大于实际存储的数据,以便增加和插入元素。

它们都允许直接按序号索引元素。

但是插入元素要涉及数组元素移动等内存操作,所以,索引数据快而插入数据慢。

而Vector…

由于使用了synized方法(线程安全)。

通常,性能上较ArrayList差。

而LinkedList…

使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历。

但其插入数据时,只需要记录本项的前后项即可,所以插入速度较快。

以上,就是三者的存储性能和特性了。

三、HashMap和Hashtable的区别?

答…

主要有以下三个方面的区别:

1、历史原因

Hashtable是基于陈旧的Diary类的。

而HashMap则是Java 1.2引进的Map接口的实现。

2、同步性

Hashtable是线程安全的,也就是说是同步的。

而HashMap则是线程序不安全的,它是异步的。

3、值

Hashtable是HashMap的同步版本。

只有HashMap,允许在一个集合中有一个null键,以及多个null值。

HashMap允许有null值和一个null键,但是,Hashtable不允许有任何内容为null。

Hashtable类的对象必须覆盖Object类的hashCode()和equals()方法。

四、java.lang包中,还有哪些集合类型?

1、

ArrayList提供快速遍历和快速访问。

现在设计了新的 Randomess接口,它指出这种列表支持快速随机访问。

Vector也实现了Randomess接口。

2、

遍历HashSet与HashMap时,其顺序是未知的(但添加删除快)。

LinkedHashSet和LinkedHashSet是按照元素的插入的顺序遍历的(遍历快)。

3、

TreeSet和TreeMap将保证元素按照元素的自然顺序进行排列。

也可以使用一个用户自己实现的比较规则。

4、

HashSet有一个散列表支持它。

它为基本操作提供固定时间性能。

TreeSet它确保了排序集将按元素升序,根据自然顺序排序。

So,你get到%多少了?

(——·本章完·——)

————【题外话】————

评论、收藏、关注,一键三连,可好?

推荐票、月票、打赏,好伐?!