「javaoop题库」Java笔试题库
本篇文章给大家谈谈javaoop题库,以及Java笔试题库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java学习作为一名java初学者,如何快速学习j
- 2、高手来:我给你1000分~
- 3、Java学到什么程度才能叫精通?
- 4、Java的学习技巧是什么?
- 5、JAVA OOP上溯造型有什么好处
- 6、JAVA 学习方法或捷径--求教
java学习作为一名java初学者,如何快速学习j
那首先来了解一下什么是java:
Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言,是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
那么为什么要使用这个语言呢,Java语言的特点跨平台性,通过Java语言编写的应用程序在不同的系统平台上都可以运行。原理是只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
下面对java学习进行一次史无前例的剖析,细致的讲解零基础的人怎么学习Java。先看下Java在基础阶段的知识点路线图。
内容多吗?不要被吓到了,知识点剖析的比较细,所以看着比较多。不要害怕学不会,经过下面的详解,你就会明白这些知识点都是干嘛的了。
入门阶段,主要是培养Java语言的编程思想。了解Java语言的语法,书写规范等,掌握Eclipse、MyEclipse等开发工具,编写Java代码的能力。学完这个阶段你应该可进行小型应用程序开发并且可以对数据库进行基本的增删改查管理。注意:此阶段知识点的学习,会有真实的项目进行驱动学习,让你轻松理解各知识点。
1计算机基础知识
针对零基础学习的人,从对计算机操作等知识的了解,延伸到Java语言的发展与开发工具的使用上。主要是让你知道怎样执行计算机命令,认识Java这门语言,感受编程语言Java怎么开发程序。
1) 计算机基础
让零基础学习的人先了解计算机相关知识,进而再去了解Java语言。
2) DOS常用命令
了解什么是DOS,并掌握DOS控制台的打开方式,同时熟悉常用的DOS命令,例如:盘符切换、进入指定目录、删除文件等,完成使用DOS命令对计算机进行操作和控制。
3) Java概述
了解Java语言的发展史、Java语言平台版本、Java语言的特点,以及JRE与JDK。JRE是Java的运行环境,JDK是Java开发工具包,它包含了Java的开发工具以及JRE。所以安装了JDK就不用再单独安装JRE了。
4) JDK环境安装配置
了解了什么是JDK,以及JDK的重要性,下一步我们就来学习如何安装和配置JDK环境。在安装JDK之前,我们首先需要下载JDK,针对不同的系统,我们需要下载不用版本的JDK。
5) 环境变量配置
了解path、classpath环境变量,理解path变量和classpath变量的作用,并掌握path变量和classpath变量的配置方式。
6) Java程序入门
当JDK、环境变量配置完毕,我们就可以开始 编写Java程序。编写Java程序可以使用如下几种工具:notepad(微软操作系统自带)、Editplus、Notepad++、Eclipse、MyEclipse,sublime等等。
IntelliJ IDEA工具的使用(重点)
2编程基础
此模块学习是让你了解编程的具体流程,学习Java基础语法的格式等。具体要掌握不同数据类型的变量定义与使用,掌握不同运算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明与调用,创建数组并访问数组元素等知识。
1) 注释
在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。
2) 关键字
了解Java关键字的含义及特点,掌握关键字使用的注意事项。
3) 标识符
了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。
4) 常量与变量
理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。
5) 数据类型
掌握Java语言的数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、接口、数组。
6) 运算符
熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。
7) 流程控制语句
了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。
8) 方法
掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。
9) 数组
了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。
3面向对象
现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即动态部分与静态部分。静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分),人类通过探讨对象的属性和观察对象的行为了解对象。
1) 面向对象思想
了解面向过程编程思想,能够通过案例理解Java的面向对象编程思想,了解面向对象开发、设计、特征。
2) 类与对象
了解什么是类,什么是对象,并理解类与对象之间的关系;熟练掌握类的定义、对象内存图等。
3) 成员变量和局部变量
了解什么是成员变量,什么是局部变量,以及从他们在类中的位置、内存中的位置、生命周期、初始化值等方面掌握他们的区别。
4) 匿名对象
了解什么是匿名对象,掌握匿名对象的两种使用情况。
5) 封装
清楚的了解什么是封装,并能够理解封装的优点与缺点,同时掌握封装的原则。
6) this关键字
掌握this关键字的含义与使用。
7) 构造方法
了解什么是构造方法,构造方法的作用,以及与构造方法相关的注意事项。
8) 继承
理解什么是继承,继承的好处以及java中继承的特点和注意事项,继承中成员变量的关系、构造方法的关系、成员方法的关系,方法重写与方法重载的区别。
9) 多态
理解什么是多态,掌握多态案例及成员访问的特点,多态的优点和缺点,多态中的转型问题。
10) 抽象类
了解什么是抽象类,抽象类的特点,抽象类成员的特点。
11) 接口
了解什么是接口,接口的特点,接口成员的特点,类与类、类与接口的关系,以及抽象类与接口的区别。
12) 内部类
什么是内部类,内部类的访问特点,内部类的位置,什么是成员内部类、局部内部类、匿名内部类,以及匿名内部类在开发中的使用。
4、常用类
类库就是Java API(Application Programming Interface,应用程序接口),是系统提供的已实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。
学习内容:掌握Object类、Scanner类、String类、StringBuffer类、StringBuilder类、Arrays类、基本包装类、正则表达式、Math类、Random类、System类、Date类、DateFormate类、Calendar类,及其常用方法。
5、集合
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。简单一点就是说,集合是存放数据的容器。
学习内容:什么是集合?数组与集合有什么区别,集合类的特点,掌握Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList类、Vector类、LinkedList类、泛型、Set接口、HashSet类、Map接口、HashMap类、LinkedHashMap类等。
6、IO
IO(Input/Output)是计算机输出/输出的接口。Java的核心库提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
1) 异常
了解什么是异常,异常的由来,常见的异常,异常的分类,掌握jvm对异常的默认处理方案,异常的处理方案:try…catch…finally、throws,什么是编译时异常,什么是运行时异常,掌握它们两的区别,throws关键字、throw关键字,以及这两个关键字的区别,熟练掌握自定义异常,异常注意事项。
2) File类
了解什么是File类,File类的用途,掌握File类的方法:createNewFile()、mkdir()、mkdirs()、delete()、renameTo(File dest)、isDirectory()、isFile()、exists()、等方法,以及File类的基本获取功能方法和高级获取功能方法。
3) IO流
了解什么是IO流,IO流的用途;熟练掌握输入流、输出流、字符流、字节流、IO流的常用基类;如何使用字节流读写数据、复制数据;什么是字节缓冲流,如何使用字节缓冲流读写数据;什么是转换流,如何使用转换流更加高效的读写数据,内存操作流、打印流、标准输入输出流、序列化流、Properties集合。
4) IO流练习
(1) 复制文本文件;
(2) 复制图片;
(3) 把ArrayList集合中的字符串数据存储到文本文件;
(4) 从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合;
(5) 复制单极文件夹;
(6) 复制单极文件夹中指定文件并修改文件名称;
(7) 复制多极文件夹;
(8) 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”;
(9) 请编写程序读取数据内容,把数据排序后写入ss.txt中;
(10) 获取每次读取数据的行号;
(11) 登录注册IO版。
7、多线程
是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程(台湾译作“执行绪”),进而提升整体处理性能。
1) 多线程
了解什么是线程,什么是多线程,理解java程序的运行原理,掌握多线程的实现方案,如何获取和设置线程名称、线程的生命周期、如何解决线程安全问题、线程同步、Lock锁、死锁问题、线程间通信、线程的状态及状态转换、线程池。
2) 多线程面试题
(1) 多线程有几种实现方案,分别是哪几种?
(2) 同步有几种方式,分别是什么?
(3) 启动一个线程是run()还是start()?它们的区别?
(4) sleep()和wait()方法的区别;
(5) 为什么wait(),notify(),notifyAll()等方法都定义在Object类中;
(6) 线程的生命周期图。
3) 设计模式
了解什么是设计模式,设计模式的分类,熟练掌握单例设计模式(懒汉式、饿汉式)。
8 、网络编程
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。
9、反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java新特性:(重点及理解)
Java7特性重点:
switch支持String、泛型自动类型推断
理解:可catch多个异常,异常之间使用“|”分隔
Java8特性重点:Lambda表达式、接口中的默认方法和静态方法、新的Date API。
大家凑合着看看吧。
视频教程你可以去B站上看一下老杜的159集的视频教程,这套视频教程在B站上的播放量是140多万,你说这套视频教程好不好呢?
高手来:我给你1000分~
反遍汇
另附:
文件后缀名详解
★什么是文件的后缀名
说起来Windows工作界面下的文件名简直是随心所欲,比如:某编辑部的2000年工作计划。文件名即可用中文直接表达,而且长度最长可达256个字符,让人看起来真是一目了然。然而在Windows环境中,安装的软件中却大量存在着类似CALENDAR.EXE、GAMES.GRP等等的文件名,这又是为什么呢?原来这些文件名都是根据DOS环境的文件名命名规则而定的。
★DOS环境下的文件后缀名
在DOS下,文件名采用8+3结构,即:最长8位的文件名,由小数点分隔后再跟上最长3位的后缀名,如:READ.ME、SETUP.EXE,一般情况下文件名不允许使用汉字,只能由字母、数字和一些符号组成。如READ.ME用中文理解就是"读我",即提示用户在使用软件前先看看这个文件的内容,以获取更多的提示信息。而更重要的是,DOS下规定用后缀名来区分各种不同的文件。
在DOS下最容易遇到的首先是可执行文件,后缀名有两类:*.exe、*.com(此处的*表示文件名任意),它们是由汇编语言或其它高级语言编出的程序经过编译后直接在DOS下运行的文件。有时由于软件功能多、内存偏小,不能一次性全部调入内存还可能有同文件名的ovl文件,如ws.exe、ws.ovl。另外还有一种文件可以直接运行,*.bat,即批处理文件:其中有许多命令或可执行文件名,主要用于提高工作效率;最有用的是Autoexec.bat,这个文件在开机时会被自动执行(自动执行在英文中就是Automatically execute)。而另外一种可以加载但不能直接运行的文件即是系统扩展管理文件*.sys(sys即系统system):它主要提供某些非标准设备如鼠标、扩充内存等的驱动程序,如mouse.sys、himem.sys。为了统一管理还专门规定了一个config.sys的文本文件来一次性地在开机时自动调入这些必需的设备驱动程序,这些文件一旦被误删或换名或被病毒侵袭则将直接导致系统工作不正常。
DOS下字处理产生的文件原本是可以不用后缀的,但人们常用*.txt表示(txt即文本text)。被所有的平台和所有应用程序支持。而为了管理方便,人们也可以用自己的名字做后缀来表示是自己建的文本文件,如我输入的很多文章即为*.mcj,为了便于用户在意外删掉原文件的情况下能尽快恢复原文件,许多字处理系统都提供了一种自动备份的功能,如我第二次编辑JIHUA.MCJ时(JIHUA:计划的汉语拼音),系统会先拷贝一份原文件为JIHUA.BAK。使用具有特殊格式功能的字处理软件,如求伯君先生早年推出的WPS,就会规定其后缀为.wps,用以标识是用WPS生成的文本文件。当使用字处理软件编辑高级语言程序时,后缀通常为相应语言的前三个字母(如:*.BAS即BASIC语言源程序,*.PAS为PASCAL语言程序,*.FOR为Fortran语言程序,*.C即为C语言,*.ASM即为汇编语言程序)。
伴随着可执行文件常附有以下几类文件:*.HLP即帮助文件(help)、*.CFG即配置文件(config)、*.DAT即数据文件(data)、*.LOG即日志文件(log)、*.TMP为临时文件(temporal)。
★Windows环境下的文件后缀名
绝大多数DOS文件名后缀在Windows下继续有效,但Windows本身也引出了许多种崭新的后缀名,如:*.drv为设备驱动程序(Driver)、*.fon和*.fot都是字库文件、*.grp为分组文件(Group)、*.ini为初始化信息文件 (Initiation)、*.pif为DOS环境下的可执行文件在Windows下执行时所需要的文件格式、*.crd即卡片文件(Card)、*.rec即记录器宏文件(Record)、*.wri即文本文件(Write),它是字处理write.exe生成的文件、*.doc和*.rtf也是文本文件(Document),它们是Word产生的文件、*.cal为日历文件、*.clp是剪贴板中的文件格式、*.htm和 *.html即主页文件、*.par为交换文件、*.pwl为口令文件(Password)等等。
★图像文件的后缀名
进入多媒体世界后,大家会看到各种各样精彩的图片,会发现许多种后缀名。的确,由于各个公司在开发图形有关的软件时都自制标准,导致今日在图形方面有太多的格式,以下就是常见的几种格式:
首先是一种位图文件格式,它是一组点(像素)组成的图像,它们由图像程序生成或在扫描图像时创建。主要有Windows位图(.BMP):由Microsoft公司开发,它被Windows和Windows NT平台及许多应用程序支持。支持32位颜色,用于为Windows界面创建图标的资源文件格式,光标(.CUR、.DLL、.EXE):资源文件格式,用于创建Windows界面的光标。OS/2位图(.BMP):Microsoft公司和IBM开发的位图文件格式。它为各种操作系统和应用程序所支持。支持压缩,最大的图像像素为64000×64000。画笔(.PCX):由Zsoft公司推出,它对图像数据也进行了压缩,可由PCX生成。用于Windows的画笔。支持24位颜色,最大图像像素是64000×64000。支持压缩。图形交换格式:
Graphics Interchage format(.GIF):由Compu Serve创建,它能以任意大小支持图画,通过压缩可节省存储空间,还能将多幅图画存在一个文件中。支持256色,最大图像像素是64000×64000。
Kodak Photo CD(.PCD):Eastman Kodak所开发的位图文件格式,被所有的平台所支持,PCD支持24位颜色,最大的图像像素是2048×3072,用于在CD-ROM上保存照片。
Adobe Photoshop(.PSD):Adobe Photoshop的位图文件格式,被Macintosh和MS Windows平台所支持,最大的图像像素是30000×30000,支持压缩,广泛用于商业艺术。
Macintosh绘画(.MAC):Apple公司所开发的位图文件格式。被Macintosh平台所支持,仅支持单色原图,最大图像像素是576×720。支持压缩,主要用于在Macintosh图形应用程序中保存黑白图形和剪贴画片。
★动画文件的后缀名
动画文件格式用于保存包含动画框架中的图形信息。主要有:Autodesk FLIC(.FLC):即.FLI,Autodesk Animator和AnimatorPro的动画文件格式。支持256色,最大的图像像素是64000×64000,支持压缩。广泛用于动画图形中的动画序列、计算机辅助设计和计算机游戏应用程序。不大适合制作真实世界图像动画。
MacPICTS(.PCS,.PIC):Macromedia开发的动画文件格式,为Macintosh应用程序使用。支持256色,支持压缩,用于保存动画数据,是Quick Time的前身。
Microsoft资源互换文件格式,TIFF(.AVD):Microsoft公司开发的动画文件格式,被Windows、Windows NT平台和OS/2多媒体应用程序所支持,支持256色和压缩,用于在多媒体应用程序中保存音频、视频和图形信息。
MPEG(.MPEG):国际标准化组织的运动图像专家小组开发的动画文件格式。被所有平台和Xing Technologies MPEG播放器及其它应用程序所支持,支持压缩,最大图像像素是4095×4094×30帧/每秒。用于编码音频、视频、文本和图形数据。
Quick Time(.QTM):Apple计算机公司开发的动画文件格式。被Apple Macintosh和Microsoft Windows平台所支持,支持25位颜色,最大图像像素是64000×64000,支持压缩,用于保存音频和运动视频信息。
★声音文件的后缀名
声音文件格式是用于保存数字音频信息的。它们主要有:
AIFF(.AIF):这是Apple计算机公司开发的声音文件格式,被Macintosh平台和应用程序所支持。支持压缩。
Amiga声音(.SVX):Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩。
MAC声音(.SND):Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩。
MIDI(.MID):国际MIDI协会开发的声音文件格式,被Windows平台和许多应用程序所支持,用于为乐器创建数字声音。
声霸(.VOC):Creative Labs公司开发的声音文件格式,被Windows和DOS平台所支持,支持压缩。
WAVE(.WAV):微软公司用作Windows平台上保存音频信息的资源格式。
★压缩文件的后缀名
为了提高存储效率,许多公司都推出了压缩数据的方法和相应的软件,这类文件的使用主要通过压包和解包软件来进行,主要的后缀有:*.zip、*.arj、*.rar、*.lzh、*.jar。还有一些专用的压缩文件,如:*.ex_、*.dl_、*.d3_、*.cab等。
★数据库类文件的后缀名
在Dbase、FoxBase、Foxpro系列软件的环境下有以下几类后缀:
.ap 生成应用 .app 应用文件
.cbx和.pjt 标签文件 .cdx和.idx 索引文件
.dbf 数据库文件(databasefile) .err 编译错误文件
.fky 键宏文件 .fp 配置文件
.fpt 备注字段文件 .frx和.frt 报表文件
.fxp 编译后的程序
.mnx 和.mnt 菜单文件 .men 内存应用
.pcb 库文件 .pjx和.pjt 工程文件
.prg 命令文件(即程序Program)
.qpr和.qpx SQL查询文件 .scx和.sct 屏幕文件
.tbk 临时数据库文件 .tmp 临时文件
.win 窗口文件
★可安全删除的文件类型
临时文件:*.tmp,*.syd,*.$$$,*.@@@,*._mp,*.gid,*.~*,*.gts
备份文件:*.bak,*.old,*.wbk,*.xlk,*.ckr_
帮助文件:*.hlp、*.chm、*.cnt
★后记
用户要注意在不同的操作系统下,后缀名的约定会有所不同,如在Unix下,*.p代表Pascal语言程序,*.z代表压缩文件,*.tar代表归档文件。另外,针对极特殊的设备,其驱动程序也会有特殊的后缀,如3DS显示卡的驱动程序是*.exp。还有某些公司针对自己的产品也规定了文件名后缀,如方正公司的图像排版文件规定用*.grh(即Graph)。
文件名的后缀代表着某一种类型的文件,一般会由某一种特定的软件产生和处理。只有对这些后缀名的知识有一定的了解,才能在上机的过程中知道其所以然。这儿带着大家看到了常见的一些后缀类型,实际上还有很多类型,不可能全部讲完。常言说,师傅领进门,修行在个人,以后大家在计算机世界中自己转着看吧。
★常见的文件后缀名
.ACA:Microsoft的代理使用的角色文档
.acf:系统管理配置
.acm:音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能
.aif:声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放
.AIF:音频文件,使用Windows Media Player播放
.AIFC:音频文件,使用Windows Media Player播放
.AIFF:音频文件,使用Windows Media Player播放
.ani:动画光标文件扩展名,例如动画沙漏。
.ans:ASCII字符图形动画文件
.arc:一种较早的压缩文件,可以使用WinZip,WinRAR,PKARC等软件打开
.arj:压缩文件。可以使用WinZip,WinRAR,PKARC等软件打开
.asf:微软的媒体播放器支持的视频流,可以使用Windows Media Player播放
.asp:微软的视频流文件,可以使用Windows Media Player打开
.asp:微软提出的Active Server Page,是服务器端脚本,常用于大型网站开发,支持数据库连接,类似PHP。可以使用Visual InterDev编写,是目前的大热门
.asx:Windows Media 媒体文件的快捷方式
.au:是Internet中常用的声音文件格式,多由Sun工作站创建,可使用软件Waveform Hold and Modify 播放。Netscape Navigator中的LiveAudio也可以播放.au文件
.avi:一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片
.bak:备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名
.bas Basic:语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic
.bat:批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用
.bbs:电子告示板系统文章信息文件
.bfc:Windows的公文包文件
.bin:二进制文件,其用途依系统或应用而定
.bmp:Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。
.c:C语言源程序文件,在C语言编译程序下编译使用
.cab:Microsoft制订的压缩包格式,常用于软件的安装程序,使用Windows自带的实用程序,Extract.exe可以对其解压缩,WinZip,WinRAR等都支持这种格式
.cal:Windows 中的日历文件
.cdf:Internet Explorer的频道文件
.cdr:CorelDraw中的一种图形文件格式,它是所有CorelDraw应用程序中均能够使用的一种图形图像文件格式
.cdx:索引文件,存在于Dbase,Foxbase,Foxpro系统软件环境下
.cfg:配置文件,系统或应用软件用于进行配置自己功能,特性的文件
.chm:编译过后的HTML文件,常用于制作帮助文件和电子文档
.clp:在Windows下剪贴板中的文件格式
.cmd:用于Windows NT/2000的批处理文件,其实与BAT文件功能相同,只是为了与DOS/Windows 9x下的BAT有所区别
.cmf:声卡标准的音乐文件,FM合成器等可以回放
.cnf:NetMeetting会议连接文件
.cnt:联机帮助文件目录索引文件,通常和同名的.hlp文件一起保存
.col:由Autodesk Animator,Autodesk Animator Por等程序创建的一种调色板文件格式,其中存储的是调色板中各种项目的RGB值
.com:DOS可执行命令文件,一般小于64KB
.cpl:控制面板扩展文件,Windows操作系统使用
.cpp:C++语言源程序,非常强大的语言,在各种平台中都有相应的开发系统
.crd:Windows中的卡片文件
.crt:用于安全方面的证书认证文件
.cur:Windows下的光标资源文件格式,可用光标编辑软件编辑
.css:Text/css文件
.dat:数据文件,在应用程序中使用
.dat:VCD中的图象声音文件,VCD播放软件可调用,或是通过VCD机播放
.dbf:数据库文件,Foxbase,Dbase,Visual FoxPro,等数据库处理系统所产生的数据库文件
.dcx:传真浏览文档文件
.ddi:映象文件,DUP,HD,IMG等工具可展开
.dev:设备驱动程序
.dib:设备无关位图文件,这是一种文件格式,其目的是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样
.dir:目录文件
.dll:Windows动态连接库,几乎无处不在,但有时由于不同版本DLL冲突会造成败各种各样的问踢
.doc:是目前市场占有率最高的办公室软件Microsoft Office中的字处理软件Word创建的文档
.dos:Windows保留的MS-DOS的某些系统文件
.dot:Microsoft Word的文档模板文件,通过模板可以简化一些常用格式文档的创建工作,而且可以内嵌VBA程序来实现某些自动化功能
.drv:设备驱动程序文件,用在各种系统中
.dwg:AutoCAD的图纸文件,也是许多绘图软件都支持的格式,常用于共享数据
.dxb:AutoCAD创建的一中图形文件格式
.dxf:图形交换格式,一种计算机辅助设计的文件格式,最初开发用来与AutoCAD一起使用,以便于图形文件在应用程序之间的传递,它以ASCII方式储存图形,在表现图形的大小方面十分精确
.der:Certiticate文件
.dic:Txt文件
.emf:由Microsoft公司开发的Windows 32位扩展图元文件格式,其总体设计目标是要弥补在Microsoft Windows 3.1(Win16)中用的*.wmf文件格式的不足,使得图元文件更加易于使用
.eps:用PostScript语言描述的一种图形文件格式,以文本文件保存,在PostScript图形打印机上能打印出高品质的图形图象,最高能表示32位图形图象
.err:编译错误文件,存在于Dbase,Foxbase,Foxpro系列软件环境下
.exe:可执行文件,虽然后缀名相同,但具有不同的格式和版本
.exp:3DS使用的显示卡驱动程序
.exc:Txt文件
.flc:Autodesk Animator和Animatorpro的动画文件,支持256色,最大的图象象索是64000*64000,支持压缩,广泛用于动画图形中的动画序列,计算机辅助设计和计算机游戏应用程序
.fnd:保存的搜索结果
.fon:点阵字库文件
.for:Fortran语言程序
.fot:指向字体的快捷键
.fp: 配置文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.fpt:备注字段文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.frt:报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.frx:报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.fxp:编译后的程序,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.gif:在各种平台的各种图形处理软件上均能够处理的,经过压缩的一种图形文件格式
.grh:方正公司的图象排版文件
.grp:Windows下的程序管理器产生的组窗口文件
.goc:Gocserve
.gra:MSGraph.Chart.5
.h:C语言源程序头文件
.hlp:Windows应用程序帮助文件
.hqx:Macintosh中使用BinHex将二进制文件编码为7位的文本文件,大多数Macintosh文件皆以.hqx出现(.bin极少使用),在Macintosh中,可使用StuffIt Expander对.hqx解码,在Windows中可使用BinHex 13解码
.ht: 超级终端
.htm:保存超文本描述语言的文本文件,用于描述各种各样的网页,使用各种浏览器打开
.html:同.htm文件
.icm:图象配色描述文件
.ico:Windows中的图标文件,可以包含同一个图标的多种格式,使用图标编辑软件创建
.idf:MIDI乐器定义
.idx:索引文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.iff:文件交换格式文件,这种文件格式多用于Amiga平台,在这种平台上它几乎可以存储各种类型的数据,在其它平台上,IFF文件格式多用于存储图象和声音文件
.image:MAcintosh磁盘映象文件,常见于萍果机的FTP网点,在Macintosh中由Shrink Wrap处理
.ime:Windows下的输入法文件
.img:磁盘映象文件,用HD-COPY,WinImage等工具打开后可以恢复到一张磁盘上
.inc:汇编语言包含文件,类似C/C++中的.H文件
.inf:Windows下的软件安装信息,Windows的标准安装程序根据此文件内的安装信息对软件,驱动程序等进行安装
.ini:Windows中的初始化信息文件,已经用的不多了,新的应用程序将设置保存在系统的注册表中
.jar:一种压缩文件,ARJ的新版本,不过不太流行,可以使用WinJar,Winrar等打开
.jpeg:一种图片压缩文件,同.jpg
.jpg:静态图象专家组制订的静态图象压缩标准,具有很高的压缩比,使用非常广泛,可使用PhotoShop等图象处理软件创建
.lnk:快捷方式,这个文件指向另一个文件,开始菜单的程序文件夹下每条项目都是一个LNK文件
.log:日志文件,通常用来记录一些事件之类
.lzh:一种古老的压缩文件,可以使用WinRAR打开
.mac:Macintosh中使用的一中灰度图形文件格式,在Macintosh Paintbrush中使用,其分辨率只能是720*567
.mag :图形文件格式
.mdb :Microsoft Access使用的数据库格式,是非常流行的桌面数据库
.men :内存应用文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
.mid :音频压缩文件,曾经非常流行,不过在现在的软件中用的很少了
.mif :MIDI乐器
.mov :使用Apple's QuickTime格式的电影文件,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由Quicktime播放
.movie :QuickTime或苹果机的影视格式,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由QuickTime播放
.mp3 :采用MPEG-1 Layout 3标准压缩的音频文件,是网上主要的压缩音频文件,这种文件由于具有极高的压缩率和失真低的特点,是目前音乐盗版的主要文件格式,但目前受到VQF,WMA等新标准的挑战
.mpg :采用MPEG-1标准压缩的视频文件,与VCD使用的格式非常相近,提供CD质量的音频信号和320*240的视频分辩率,目前的媒体播放软件大都能放,Microsoft的WMV8和MPEG-4压缩的AVI文件是其强大的竞争对手
.mpt :Macintosh中使用的一种图形文件格式
.msg :Microsoft邮件文档
.obj :对象代码
.ovl :由于软件功能多,内存偏小,不能一次性全部调入内存的可执行文件可能有同文件名的ovl文件
.pcd :位图文件,由Eastman Kodak开发,被所有的平台所支持,PCD支持24位颜色,最大的图象像索是2048*3072,用于在CD-ROM上保存图片
.pcs :动画文件,是Macromedia开发的动画文件格式,为Macintosh应用程序使用,支持压缩,支持256色,用于保存动画数据,是Quick Time的前身
.pcx :图像文件,PCX格式是ZSOFT公司在开发图像处理软件Paintbrush是开发的一种格式,这是一种经过压缩的格式,占用磁盘空间较少
.pdf :图文多媒体文件,Adobe公司定义的电子印刷品文件格式,它是一种事实上的标准,在Internet网上的很多电子印刷品,都是.pdf格式的
.psd :是PhotoShop中使用的一种标准图形文件格式,能够保存图像数据的每一个细小部分,包括层,附加的蒙版通道以及其他内容
.pwl :Windows下的口令文件
.qt :Machintosh 的QuickTime影视格式,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由Quicktime播放
.qtm :动画文件,这种文件格式是由Apple计算机公司开发,被Apple Macintosh和Microsoft Windows平台所支持,支持25位颜色,最大图像分辩率是64000*64000,支持压缩,用于保存音频和运动视频信息
.rec :Windows下的记录器宏文件
.reg :Windows 95/98的系统及应用程序注册文件,这种文件虽然以纯文本文件保存,但一样存在版本问题,不同的操作系统使用的REG文件版本是不同的
.rle :一种压缩过的位图文件格式,RLE压缩方案是一种极其成熟的压缩方案,特点是无损失压缩,既节省了磁盘空间又不损失任何图像数据,但在打开这种压缩文件时,要花费更多时间,此外,一些兼容性不太好的应用程序可能会搭不开
.rm :Windows下的RealPlayer所支持的视频压缩文件,网上非常流行的流式视频文件,很多实时视频新闻等都是采用这种格式的,不过,最新的Windows Media Video V8已经对其发起了强大的攻势
.rmi :MIDI音序文件
.rtf :丰富文本格式文件,以纯文本描述内容,能够保存各种格式信息,可以用写字版,Word等创建
.sav :存档文件
.scp :用于Windows系统中Internet拨号用户,自动拨号登录用的脚本文件,可避免手动登录时繁琐的键盘输入
.scr :屏障保护文件
.sct :屏幕文件
.scx :屏幕文件
.set :Microsoft备份集文件,用于保存要备份的内容,设置等信息
.shb :指向一个文档的快捷方式
.snd :Mac声音文件,Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩
.sql:查询文件,在Dbase,Foxbase,Foxpro系列软件的环境下使用
.svg :SVG可以算是目前最火热的图像文件格式了,它是基于XML由WorldWideWebConsortium联盟开发的,SVG是可缩放的矢量图形
.svx :Amiga声音文件,Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩
.swf :flash是Micromedia公司的产品,严格说它是一种动画编辑软件,实际上它是制作出一种后缀名为.swf的动画,这种格式的动画能用比较小的体积来表现丰富的多媒体形式,并且还可以与HTML文件达到一种"水乳交融"的境界
.swg:虚拟内存交换文件,由操作系统使用
.sys:系统文件,驱动程序等,在不同的操作系统中有不同的定义
.tbk:临时数据库文件,在Dbase,Foxbase,Foxpro系列软件的环境下使用
.tga:图像文件,此文件格式的结构比较简单,属于一种图形,图像数据的通用格式,在多媒体领域有着很大影响,是计算机生成图像向电视转换的一种首选格式
.tiff:图像文件,此图像格式复杂,存储内容多,占用存储空间大,其大小是GIF图像的3倍,是相应的JPEG图像的10倍,最早流行于Macintosh,现在Windows主流的图像应用程序都支持此格式
Java学到什么程度才能叫精通?
如果要谈精通Java ,有一个特别直接的方法,那就是考察工程师是否具有:
“快速构建开发框架的能力”。
例如下面这个系统:
这是一个典型的web应用(基于Java)。虽然就整个系统搭建来说,是架构师的责任。但其中的深色部分,是一个典型Java应用框架。以此为标准,框架的搭建能力,可以用来考察软件工程师是否真的精通Java。
在一些新项目中,项目经理和架构师会根据业务需求从顶层设计架构。待架构稳定后,会进入实际的编码阶段。但在更大规模的业务编码前,首先要搭建好系统的基本框架,而这个框架一般会交给团队中最资深的工程师(当然精通Java)去做。
具体框架的搭建时间一定不能太长,因为整个开发团队都在等待。
同时,因为这个框架是长期开发的基础,所以质量一定要有保障。
搭建框架的技术指标,一句话:又快又好。
搭建这样的框架,以我的经验,团队能接受的时间一般是2周,最多不能超过3周。
这个框架如果由一个初级工程师来搭建,因为缺少长期的积累,必然需要大量的时间。但除了时间,更糟糕的是质量。
因为一个好的框架绝不是靠脑子凭空想出来的,更应该实践磨练出来的。而初级工程师因为缺少实践锤炼,踩过的坑不多,吃过的亏少。纵然理论再丰富,天资再聪颖,也无法在沙地上凭空打出扎实的地基。
而且,实践中,即使有很多工程师有丰富的实践经验,但也不意味随着时间推进,老工程师就天然具备搭建高质量框架的能力。因为实践背后,更需要深刻的洞察力,和笔耕不辍的总结。
现实中,一个大型的项目,代码量必然是巨大的。即使是当初设计再精细,但随着开发的不断推进,腐败的引入是无法避免的,其中一个显著特征就是模块之间的耦合不断增加。
用一个比喻来形容,随着时间发展,整个软件系统就像人体一样,血肉筋骨都粘合在了一块。对软件工程师来说,要从这样的系统中提取出凝练的框架,就像对一个高水平的外科医生要求的那样。在理论上要保持绝对的精通,就像医生对解刨学的掌握。同时还有有极强的编码能力,就像医生握手术刀的灵巧双手一样。用一句话来形容一流的Java工程师(医生也是这样),那就是:“鹰眼、狮心,女人手”。
但是,软件工程师和医生还有一点不同,那就是对速度的追求。因为搭建框架的工作是整个团队开发工作的前置阶段。
而要提高框架搭建的速度,除了日常多思考,多总结,更要做到“未雨绸缪”,提前布局。
以我为例,日常的开发中,对每个经手的大型项目。除了通过不断的重构,来保持整个框架的清晰外,我还会尝试把每个系统中的框架单独剥离出来。这样的做法,除了避免框架被污染的同时,也不断丰富了属于我个人的“架构模式”库。
这样的做法,一则在面临新项目时,极大的提高了项目的推进速度。另一方面,也极大的提高了个人的技术自信度,以及职业安全感。
Java的学习技巧是什么?
下面简单列举一下大家学习java的一个系统知识点的一些介绍
一、java基础部分:java基础的时候,有些知识点是非常重要的,比如循环系列。For,while,do-while.这方面只要大家用心点基本没什么难点。
二、面向对象:oop面向对象的时候,偏重理论,相信这方面的文章也很多,大家可以多看看,在这就不说了。重点掌握面向对象的三大特征和基本原理。
三、java核心一:这方面主要偏重API,所以在学习了这章的时候,一定要对照API去学习,多看API,主要就是方法多,string和集合的方法最为重要。后面将为大家提供本人整理的部分笔记。
四、java核心二:主要讲解了异常,线程和IO流,其实个人认为重点掌握线程就行,对于流和异常多写就行,线程偏重理论也最为重要。
五、oracle数据库方面:建议学习数据库的时候大家一定要端正态度,数据库极为重要,本人当时在学习这个的时候,一直以为数据库只是为了增删改查,故没有认真学习,后期面试的时候吃了不少亏,因为现在软件公司对数据库的要求跟java一样重要,基本都会单独一张笔试题笔试数据库。
六、JDBC/XML系列:JDBC主要是3个核心接口(Connection) (Statement) (ResultSet)的使用,大家在学习的时候,熟练运用3接口,jdbc的原理也相当重要,虽然后期学习了HIbernate之后,JDBC不需要再用,但其底层原理还是JDBC,而且现在很多软件公司不一定会用到Hibernate框架,所以建议大家还是把“本”学好,XML:重点掌握解析互换的2个核心接口方法。
七、HTML/CSS/JS:对于这个,本人相当纠结,因为这个有点偏向于美工的意思,所以后期想从事后台开发的同学一般不会太重视,但是现在都是web项目,而且很多软件公司并不是把许多这方面的事情交给美工(除非是那种有很高要求的静态页面),而且现在html代码都是在jsp里面写,所以建议还是好好学学,因为公司不会让一个美工去专门为你写一些简单的html代码,包括js!这章其实不难,就是属性方法知识点比较多,大家多记记,多写写,重在多练!
八、Servlet/Jsp:如果想从事web和b/s开发(现在基本都是web和b/s开发),这章极为重要,服务器的访问以及配置。tomcat的使用都在这一章,虽然后期struts框架的学习简化了servlet代码的繁琐性,但是你可知道现在有些公司只用servlet不用struts!即使用了框架技术也不一定是struts!servlet跟JDBC一样都是“本”,而struts和Hibernate一样都是封装了它们而后简化代码而已。所以只有把“本”学会了,就不怕框架的变化!jsp就不多说了,如果你学习java这个就不会缺少!后期b/s项目页面的布局以及功能就全靠它了。
九、Ajax/Jquery:当初学习这个的时候,本人没有用心去学,然后结果就是本人在进公司之后花了一个星期的时间练习jQuery!这个对于强化web服务器页面的功能技术实在是强大。这个封装了js对象的技术,可以对jsp页面元素进行样式的更改以及操作,想要玩好web项目,这个技术必须玩好!
十、SSH:传说中的三大框架;
Struts:前面已经提到,这个框架技术主要是为了弥补servlet和jsp页面之间交互的复杂性,可以有效的提高客户端与服务器之间的交互。而且采用了MVC思想进行改善减弱代码之间的复杂性。
Hibernate:主要封装了jdbc的核心功能,可以采用映射方式访问并操作数据库,一定程度上讲是简化了程序代码,但前面已经提到,由于是框架,而框架是随着时代而改变的,并且很多公司不一定用到这个框架,所以,只有掌握好JDBC的根本原理,才会更加理解这个框架。
Spring框架:其实后期学框架知识大家都会觉得很无趣和乏味,因为框架的知识都是理论很深的知识点,spring主要是要完善代码之间的耦合度,包括类似工厂模式的对象自动控制,AOP的事物日志管理等,都其实是为了减少程序员的工作量,但不得不说是有很大的作用的,而且这个框架可以整合JDBC以及Hibernate,struts技术,可以把所有的框架技术都整合在一起。相当于一块主板把内存,风扇,cpu,显卡都集中在一起。
前面所有的都是个人学习之中的一点感受,希望大家也能有所感触,主要想说明的是前面的基础一定要打好。
对于学习方法的问题也可以和大家聊一聊,本人在学习之初,由于面向对象和集合一些理论较深的知识点出现,导致后期比较注重理论,最终在写实际项目的时候吃了苦头,因为代码量没有跟上,即使理论都懂,但很多功能还是无法自己写出,所以要强调的是在注重理论的情况下一定要多写代码。
我的建议是在理论比较深刻的知识点面前,比如面向对象,集合,线程这些知识,多看点理论,而对于html,css以及API方法比较多的知识点的情况下,多写代码。总之,各50%最好!当然,这就需要大家付出更多的时间和精力辛苦勤劳下了!java的学习还是要多练代码,多思考,举一反三,任何的知识点只要你认真的去做,没有拿不下的顽石,勤能补拙,相信自己,然后用功,你就胜利了。
摘自:张纯睿的博客,更多学习资料
JAVA OOP上溯造型有什么好处
面向对象的程序设计的优点面向对象的程序设计的优点
目前在软件开发行业,面向对象编程是比较流行的,java私塾()把面向对象的程序设计的优点列出来,给大家一个参考:
1.符合人们习惯的思维方法,便于分解大型的复杂多变的问题。由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流。
2.易于软件的维护和功能的增减。对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便。
3.可重用性好。重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率。
4.与可视化技术相结合,改善了工作界面。随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心。它与可视化技术相结合,使人机界面进入GUI时代。
java语言的优点:
1.最为显著的优点是它与平台无关。Java依靠它的运行库(Run Time Library)获得了以往任何一种语言都没有的平台无关性。同样的代码可以不用改动就可在Windows、Solaris、Unix等各种软硬件平台上运行。
2.另外一个显著的优点是Java的类C++语法。Java从C++发展而来,对于当今世界上众多的c++程序员来说,Java显得并不陌生。
3.面向对象。Java语言是完全面向对象的,区别于C++的“半面向对象”。目前面向对象技术已经取代早期的结构化程序设计方法而成为计算机界的标准技术,因为事实证明面向对象技术处理复杂问题的优势远非其他方法所能及。
4.健壮。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验。
5.安全。java最重要的一点保证是:Java的安全体系架构。Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。
6.多线程。简言之为一项任务多点开工,多线程带来的更大的好处是更好的交互性能和实时控制性能。在Java里,你可用一个单线程来调一副图片,而你可以访问HTML里的其它信息而不必等它。
7.动态。Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。
8.效率高。在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
9.易扩展。由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
java是目前最流行的语言不是没有道理的
JAVA 学习方法或捷径--求教
JAVA同其它任何一门编程语言一样,都是要从浅到深的过程,如果你想愉快的学习这门语言的话,给你看篇文章,记住JAVA学习要有耐心!下面的文章也许对你有帮助
1. Java语言基础
谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。作者从1986年至今,已经发表了超过150篇计算机技术文章,出版了6本书(其中4本是关于C++的),并且在全世界做了数百次演讲。他是《Thinking in Java》、《Thinking in C++》、《C++ Inside Out》《Using C++》和《Thinking in Patterns》的作者,同时还是《Black Belt C++》文集的编辑。他的书被读者称为“最好的Java参考书……绝对让人震惊”;“购买Java参考书最明智的选择”;“我见过的最棒的编程指南”。作者的非凡才华,极其跨越语言的能力,使作者被选为Java发展10年间与Java关系最密切的10个人物之一。
《Thinking in Java》讲述了Java语言的方方面面,很多Java语言的老手都评价“这是一本将Java语言讲得相当丑陋的书”。该书谈及了java语言的很多细节,每一个方面都是相当深刻的。通过本书你可以看到“丑陋的”java语言。
网络上关于java语言讲解的视频很多很多,其中不凡有垃圾。《翁恺—JAVA语言》可能是你学习java语言基础的唯一选择,该讲座基本按照《Thinking in Java》这本书讲解,其中不凡有翁老师的很多有意思的笑话。我很幸运学习就是从此视频开始的。内容包括30讲,我总共看了3遍。
不过,对于初学者我不太推荐使用《Thinking in Java》,我比较推荐Prentice Hall PTR 的《Core Java 2》国内称为《Java 2 核心技术》,目前是第七版。网络上大家都可以下载到电子版。Oreilly的《Java in a nutshell》也是一个不错的选择。读完以上两本后,你可以看看翁恺老师的视频,接着可以研究《Thinking in Java》了。
2. Java数据结构
市面上关于Java数据结构的书本身就很少很少。大致有APress 的《Java Collections》,Jones 和Bartlett 的《Data Structures in Java》、《Object-oriented Data Structures Using Java》以及Prentice Hall 出版的《Data Structures and Algorithms in Java》 (Dec 19, 2005)还有一本就是《Data Structures And Algorithms With Object-oriented Design Patterns In Java》。很幸运我的第一本英文书就是APress 的《Java Collections》(本书在国内可能根本就没有中文版――只能下载英文版了),很不错,讲得很有条例、很简单,是一本完完全全Java Collections API介绍的书籍,其中不凡有扩展API的例子。这是我推荐你学习java数据结构的唯一一本好书。其它的Jones 和Bartlett的那两本国内好像有一本中文版,想看你也可以看看。
在学习完API后,你可以看看java.util包中对应的类了。不过只有在学习过设计模式后你才有可能完全理解整个Java Collections Framework。Java Collections Framework使用了很多著名的设计模式如:迭代器(Iterator)模式,工厂方法模式、装饰器模式、适配器模式等等。通过研究java.util包中数据结构的源代码,你可以知道臭名昭著的Properties类的设计了,同时可能基本具备设计简单的数据结构的能力了。
所谓学习无止境,学习完Sun提供了Java Collections Framework后,你可以研究Apche的另一个Java Collections Framework,很有意思哦。互为补充的两个Framework。
在大家学习、研究Java Collections之前,我提示一下Java Collections主要包括以下三部分:接口(Interface)、实现(Implemention)和算法(Algorithm)。
1. 接口主要有List、Set、Queue和 Map。List 、Se t和Queue是 Collection接口的子接口。
2. 实现主要是实现这些接口的具体类。如实现List接口的ArrayList、LinkedList、Stack和Vector;实现Set接口的HashSet、TreeSet 和LinkedHashSet;实现Queue接口的PriorityQueue、SynchronousQueue等等;实现Map接口的HashMap、TreeMap、Hashtable、Properties、WeakHashMap等等。
3. 算法主要是由Arrays类和Collections类提供的,它是整个Java Collection Framework算法的核心。支持各种类型的排序,查找等常用操作。
Java Collections中包含两个版本的数据结构,主要是原先的支持同步的数据结构和后来不支持同步的数据结构。
Java Collection Framework在使用Comparator和Comparable接口支持排序。同时提供新旧两个版本的迭代器Iterator和Enumeraton,以及它们如何转换等等。
在java.util包中的Obserable接口和Observer类是考察者模式的核心。
……
3. Java IO
市面上关于IO的书籍也仅仅只有Oreilly出版社的两本,都是Elliotte Rusty Harold的著作。两本书的风格基本一致,推荐阅读是第一版的《Jvava I/O》,讲得比较浅显,内容相对比较集中,实例也很多。第二版今年5月国外才出版,很有幸我在网络上下载了第二版,讲得极其详细――726页的大块头(我化了两个星期),这次将NIO和IO和在一起,还包括J2ME部分的,不过串口、并口通信部分好像类库支持不够,自己不能实际操作。
与第一版的《Jvava I/O》一起的Oreilly还有一本《Jvava NIO》,也是很不错的哦。
大家在依次阅读完《Jvava I/O》以及《Jvava NIO》后,可以研究java.io包中的源代码了。在大家研究源代码前我给点提示:
Java的io包主要包括:
1. 两种流:字节流(byte Stream)和字符流(character stream),这两种流不存在所谓的谁代替谁、谁比谁高级之说,它们互为补充,只是侧重点不同而已。
2. 两种对称:1.字节流、字符流的对称;2.输入、输出的对称。
3. 一个桥梁:将字节流转变为字符流的InputStreamReader和OutputStreamWriter。
其中必须注意:
1. PipedInputStream和PipedOutputStrem是两个比较有趣的类。
2. 支持Buffered的流是我们经常使用的类。
3. 装饰器(Decorator)模式在java最著名的应用就是用于io的设计。仔细研究各个Filter流与具体流的关系,多看设计模式的书籍。相信你会有所所获。
4. 学习好io包,是研究net包,rmi包……的基础哦!
4 . Java数据库
数据库的书籍太多太多了,也是太烂太烂了!这方面的书我基本都研究过,推荐的你就看看Apress的《JDBC Recipes A Problem Solution Approach 》很不错,国外2005年底才出版,(国内好像没有中文版,不过出了中文版也不一定值得看――国内经常将国外的书翻译得一塌糊涂、不堪入目)不过我们真的很幸运,网络上有电子版的。值得一看。推荐我看的第一本比较满意的――Wiley出版的《Java Database Bible》,讲得很不错!Sun公司自己的关于JDBC API介绍的那一本《JDBC API Tutorial andRefernece》也不错。我第二本JDBC的就是研究的这套API。
不过目前这些书都是一些相对比较浮浅的API应用的书籍。有机会我会给大家带来介绍JDBC API以及JDBC实现内部细节的书!我尽快努力,同时希望得到大家的支持!
顺便给学习JDBC的朋友一点提示:
JDBC的学习和使用主要是这套API,其使用过程也是极其简单,下面是使用JDBC的一般流程:
1. 加载某个数据库的驱动(Driver类),通常使用Class.forName(“驱动的类名“);
2. 连接数据库――
Connection con = DriverManager.getConnection(url,username,password);
3. 得到会话――Statement stmt = con.createStatement();
4. 执行操作――Result rs = stmt.executeQuery(“SQL查询语句”);
5. 处理结果――
while(rs.next()){
String col1 = rs.getString(1);
……
}
简单吧!整个JDBC中可以变化的一般是:
1. 可以由Connection对象创建Statement、PreparedStatement和CallableStatement创建三种类型的Statement。
2. 可以创建多种类型的ResultSet:支持单向移动和个自由移动;可更新的和不可更新的;支持不同等级的交易的…..
3. 数据输入的批处理。
4. 结果集中特殊类型(Blob、Clob、Arrary和Ref、Struct)列的操作。
5. 这些特殊类型的录入数据库。
6. javax.sql包中特殊结果集(CachedRowSet、JdbcRowSet、WebRowSet)的操作。
7. 其它的就是一个DataSource了,也很简单!一个J2EE中的被管理对象
简单吧!相信大家很快就会征服JDBC。
5. Java 网络编程
网络编程――一个神秘的、充满挑战的方向。不过在谈Java网络编程之前首先感谢Sun公司的开发人员,因为它们天才的设想,充满智慧的架构,使广大java程序员学习java网络编程变得异常简单。
Java网络编程方面的书,我推荐O'Reilly的《Java Network Programming》,目前已经第三版了,以前的版本市面上肯定有!网络上早有第三版的电子版,国外2004年出版,706页哦!讲得很全,比较深入,太深入的可能由于Sun有些东西没有完全公开,所以也就不好讲了,有兴趣的可以下载看看!第二本还是O'Reilly 1998年出版的《Java distributed computing 》,基础部分写得比较详细,后面的实例还是值得研究的。
在大家阅读这些书之前,给大家一点提示:
java网络编程其实相对比较简单,入门也很快很快。java网络编程主要包括两个部分:1.Socket;2.URL部分。不过第二部分也完全建立在第一部分的基础上。
1. Socket包括客户端的Socket和服务器端的ServerSocket。还有就是DatagramSocket和DatagramPacket,它对应于UDP通信协议。 总之,Socket部分是建立其它高级协议的基础。
2. URL类是一个网络资源定位器,通常和具体的网络协议如HTTP,FTP,Telnet……相关。通过该类可以连接网络上的资源,通过其openStream可以以io包中的流(InputStream)的形式读取网络资源;通过其OpenConnection方法,可以打开一个连接,在此连接上可以不仅可以完成读的操作,还可以完成写的操作。
Java的网络编程大体包括以上两部分。网络编程和IO以及多线程部分非常密切,在学习此部分前大家一定对这两部分了解比较透彻。
学习了以上部分你可以研究java.net包中的与此相关的源代码了!研究所有的源代码还为时尚早。在整个net包中包含:ContentHandlerFactory、URLStreamHandlerFactory、URLStreamHandler、URLClassLoader等辅助类,它们构成了java.net网络编程的框架,通过研究其源代码,你不仅可以快速理解java.net包,还可以为以后扩展该包打下基础,甚至可以将此思维方式运用到自己的项目中。
到此为止你对java.net包应该才了解60%,还有一部分你可以使用JDecompiler之类的反编译软件打开你JDK安装目录下\jdkxxx\jre\lib目录中的rt.jar,用WinRAR之类的软件打开它的sun.net包,反编译所有的文件,它是URL类工作的细节。当研究完该sun.net包,你就会对整个网络编程很熟悉很熟悉了。
一切看起来我们已经对网络编程很精通了。其实不然,刚刚开始而已,要想深入,请继续吧!网络上很多优秀的网络编程库甚至软件可以为我们“添加功力”。如Apache的HttpCore和HTTPConnection 是两个和HTTP协议相关库;JGroups是研究分布式通信、群组通信的必读库;接着我们可以研究P2P的软件包,如Sun公司的JXTA,它可能是java平台点对点通信未来的标准哦!接着你可以研究成熟得不得了,使用极其广泛得P2P软件Azureus!可以下载到!
千里之行始于足下!Just do it !(目前我也只研究了net包,其它的会在不久的将来继续深入。Sun公司因为某些原因没有公开net的其它实现细节,在其允许将其源代码以文字的形式加以研究,以及允许将其没有公开的实现写入书中时,我很希望能出一本java网络编程的书籍,以飧广大读者!!)
6. Servlet和JSP
Servlet、JSP的书也是满地都是!值得推荐的也仅仅两三本。实推Addison Wiley的《Servlets and JavaServer pages :The J2EE Technology Web Tier》,又是一本很厚的哦!国外2003年出版、784页,讲得比较全,例子也很多,特别是第八章Filter,举了几个不错的例子。其它所有我看到的关于Servlet和JSP的书都没有如此深入的!(可能有我没有看到而已)。O’reilly的《Java Servlet Programming》和《Java Server Pages》相对比较好懂一些,可以读读!
在大家学习Servlet和Jsp之前我还是要提醒一下:
本质上说Servlet就是一个实现Servlet接口的、部署于服务器端的服务器端的程序罢了!它可以象写其它任何java应用程序一样编写,它可以操作数据库、可以操作本地文件、可以连接本地EJB……编写Servlet程序的一般流程为:
1. 继承一个HttpServlet类;
2. 覆盖其doGet、doPost方法;
3. 在覆盖方法的内部操作方法参数HttpServletRequest和HttpServletResponse。
4. 读取请求利用HttpServletRequest。利用HttpServletRequest你可以操作Http协议的协议头、可以得到请求的操作方法、可以得到请求的路径、可以得到请求的字符串、以及和请求客户相关的信息,更主要的你可以得到Cookie和HttpSession这两个对象。
5. 利用Cookie你可以操作“甜心”对象或者将其写入HttpServletResponse中。
6. 向客户输出信息可以使用HttpServletResponse。使用HttpServletResponse可以写入各种类型的协议头、可以增加Cookie、可以重定向其它URL、可以向客户发送Http协议的状态码。
7. 利用HttpSession在会话内完成你想实现的任何功能。
同时Servlet还提供了一些事件和事件监听器(简单的观察者模式而已)。还有就是过滤器(Filter)和包装器(ServletRequestWrapper、ServletResponseWrapper)――简单的流的使用和装饰器模式的使用。
学习Sevlet、JSP必然要部署到服务器中,记住通常文件部署的步骤和参数的设置以及在程序中如何使用就可以了。
完全理解Servlet后,学习jsp相对比较容易了!Jsp完全建立在Servlet的基础上,它是为了迎合那些喜欢在Html文档中嵌入脚本(如:PHP之类的网页编程语言)的程序员的需要罢了!学起来也相当的容易!
一切看起来似乎那么的风平浪静,简单好学!简单的表象背后有其复杂的机理。要想对Servlet和Jsp彻底研究,你得研究Tomcat等开源软件的具体实现。它无非就是一个服务器,在客户利用网页通过HTTP协议向服务器发送请求后,服务器将此HTTP请求转化为相应的HttpServletRequest对象,调用你编写的Servlet罢了,在你的Servlet中你肯定操作了此HttpServletRequest了吧,同时操作了HttpServletResponse了吧,服务器就将此HttpServletResponse按照HTTP协议的要求利用HTTP协议发送给你的浏览器了!在服务器端的Jsp网页在被客户请求后,Tomcat会利用编译软件,使用javax.servlet.jsp包中的模板,编译此jsp文件,编译后就是一个Servlet!以后的操作和Servlet完全一样哦!
在Servlet和Jsp的基础上出现了,所谓的高级技术:JSTL,Struts……无非就是一些标签和MVC模式的使用。
继续前进吧!胜利就在前方!!
7. 多线程
一个看起来很神秘,却很容易上手、很难精通的方向!
我推荐两本我感觉很好的书籍。首先是我第一本能上手看的这方面的书,Sams 1998年出版的《Java Thread Programming》,写得暴好,很容易读懂,我有空还时常看当时的笔记!要知道怎么好你自己看吧!第二本OReilly三次出版的《Java Threads》,最新是2004版,国内好像有中文版,推荐你还是看英文版的吧!书中谈到了与多线程相关的N个方向,如IO、Swing、Collection等等。
给大家一点提示吧!java类库中与多线程相关的类不是很多,主要有:Thread、ThreadGroup以及ThreadLocal和InheritableThreadLocal四个类和一个Runnable接口;关键字synchronize、volatile ;以及Object对象的wait、notify、notifyAll方法!
1 Thread是多线程的核心类,提供了一系列创建和操作多线程的方法。
2 ThreadGroup是一个管理Thread的工具类。
3 ThreadLocal和InheritableThreadLocal为Thread提供了一个类似保险箱功能的存储线程对象的类!
4 Runnable不用说了吧!
5 synchronize是同步方法和同步块的核心哦!多个线程调用此方法时,只有一个线程可以使用此方法,其它方法阻塞,从而保证被操作对象内部状态完整性。某个线程调用带有synchronize的方法或块时会得到该对象的对象锁,完成块中的操作后释放此对象锁,从而其它对象可以继续操作。
6 wait、notify、notifyAll提供了有效的等待/通知机制。Java语言中每一个对象都有一个休息室,任何线程在其操作的对象的状态不满足的情况下,在该对象的休息室中休息,释放对象锁;当其它线程操作该对象后,唤醒休息室中的线程,它们再检查条件,当条件满足后,执行相应的操作。
多线程大致就这么多基础的!简单吗!这对于一个真正的程序员应该是不够的,真正对多线程要有所掌握,请您研究java.util.concurrent包吧!大师Doug Lea的作品,原先是一个开源的一致性编程的库,后来被Sun公司并入java类库。作者的网站上也有另外一个版本的该类库!值得研究的好东西!Hibernation、OpenJMS等开源软件都使用了此包!
8. 设计模式
谈到设计模式很多人多会推荐GOF的那本,该书在Amzon上是五星级的推荐书籍。不过对于学习java没多久的、特别是java初学者,我很不推荐这本书。主要是该书的例子基本都是C++的,很多细节没有讲述得足够清楚。
我给大家推荐的第一本是阎宏博士的《Java 与模式》,它是第一本中国人自己写的关于设计模式的书籍,写的比较有趣,融合了很多中华民族的文化和观念,例子、类图都比较多,且相对简单!非常不错的入门书籍――又是大块头哦!
其次我推荐Wiley出版社出版的《Pattern In Java》一套三本,我才看了第一本,好像第二本不怎么样,第三本还不错!
第三本是中文翻译版的关于多线程模式的(很难得的中文翻译版)中国铁道出版社2003年出版的《Java多线程设计模式》,将多线程模式讲得非常浅显,配有大量的图例,每章都有习题,最后有答案!我研究多线程模式就是由它开始的!
第四本,今年出版的Head First系列的《Head First Design Pattern》,秉承Head First系列图书的优点,大量的类图、丰富的实例、有趣的注解,值得购买!
其次在J2EE方向你可以研究阅读Addison Wesley 2002年出版的《Patterns of Enterprise Application Architecture》,众多大腕的作品,讲企业消息集成的!Sun提供的《J2EE PATTERNS SL500》也很好!晚了推荐那一本Amzon 4星半的《Holub on patterns》,大师的作品,提供了,很值得研究的例子,不过对上面四本不是很熟悉的读者,最好不要读它!可能会让你比较累!
我学习设计模式经过一段很曲折的路线,前前后后大约看了20本,阎宏博士的《Java 与模式》我看了4遍,还排除我第一次基本没看懂的看!记得研一时老师给我们讲了GOF的那本,作为选修课,我和它们计算机系的硕士、博士们一起,到最后一个班40-50个人,不超过3个人明白,我也没有明白任何一点(基础差吧――主要我对C++语言一点都不了解),凭我不伏输的性格,我认为我对java语言理解还可以,我就借了《Java 与模式》,结果还是基本没看懂。很有幸的是读研三时,听过了上交大饶若楠老师关于Java OOP语言的讲座,我懂了组合书籍模式等三种设计模式后,对其它模式有了强烈的兴趣和要征服它的愿望!工作后我买的第一本就是《Java 与模式》,第一遍花了2个月研究了这个1000多页的大块头,后来第三遍15天左右就可以搞定,笔记记了一大本!从此一发不可收拾。
选对书、埋头研究。相信很快就会入门的!
学习Java语言8个简单的部分,这只是我们研究Java语言的开始!这些都懂了充其量一个java程序员而已,后面的路很长很长!我们可以继续研究数据库实现的源代码、Servlet服务器的源代码、RMI、EJB、JNDI、面向方面编程、重构、ANT工具、Eclipse工具、Spring工具、JBoss、JOnAS、Apache Geronimo等J2EE服务器!研究了这些你可能会成为一个出色的J2EE Architecture!你可以继续研究剖析器、编译器、JNODE(java写的操作系统)……
感谢大家有此耐心,听我罗罗嗦嗦大半天!感谢大家的阅读,感谢群里的朋友!这篇文章主要应群里朋友的呼声――不知道如何选书、不知道从何看起!大半天的功夫完成赶此文章,字句上难免有失误,同时由于能力有限不凡有错误!请阅读后批评指正!
上面基本是我研究java语言的顺序,以上书籍都是我阅读过的,不存在替任何出版社宣传的成分!有的方法可能不适合你,假如你能收获一点,两点甚至更多,请你不要吝啬推荐给你的朋友――共同学习!
感谢大家的阅读;感谢互联网的设计者;感谢java的设计师;感谢和网站!
javaoop题库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java笔试题库、javaoop题库的信息别忘了在本站进行查找喔。
发布于:2022-12-08,除非注明,否则均为
原创文章,转载请注明出处。