一读小说 » 都市言情 » 蓝星文娱:从微末崛起的娱乐大亨 » 第一章:Java基础知识(面试笔试工作必备)

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

    接下来我们从【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

    包中有接口和类。

    接口:

    Comparable、Cloneable、Runable等

    类:

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

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

    以及其它类。

    ……

    六、Java的类与接口

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

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

    其中…

    接口可以继承接口。

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

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

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

    1、Dictionary类

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

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

    2、Properties类

    它扩展了Hashtable类。

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

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

    七、Java的IO流

    字节流:

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

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

    字符流:

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

    流:

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

    文件读写的基本类:

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

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

    PipedInputStream、PipedOutputStream、PipedReader、PipedWriter。

    【编程环境】

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

    JDK是整个Java的核心。

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

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

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

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

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

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

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

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

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

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

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

    【编程工具】

    1、Eclipse:

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

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

    2、NetBeans:

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

    3、IntelliJIDEA:

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

    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…

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

    通常,性能上较ArrayList差。

    而LinkedList…

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

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

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

    …

    三、HashMap和Hashtable的区别?

    答…

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

    1、历史原因

    Hashtable是基于陈旧的Dictionary类的。

    而HashMap则是Java1.2引进的Map接口的实现。

    2、同步性

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

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

    3、值

    Hashtable是HashMap的同步版本。

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

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

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

    …

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

    1、

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

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

    Vector也实现了RandomAccess接口。

    2、

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

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

    3、

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

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

    4、

    HashSet有一个散列表支持它。

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

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

    So,你get到%多少了?

    (——·本章完·——)

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

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

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