




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学java找维信科技/学嵌入式找维信科技/学物联网找维信科技维信科技中北大学软件学院-学员实训总结日期作者版本2014/9/30蔚鹏飞1.0目录JAVA核心技术2第一章Java入门21.语言的历史22.C/C+/java23.Java发展史34 .JAVA语言的特点45 .java环境搭建46.HelloWorld测试用例47.标识符58.数据类型52014.9.12611.if语句62014.9.1592014.9.16102014.9.17122014.9.18132014.9.19152014.9.22162014.9.23192014.9.24212014.9.2522JAVA核心技术第一章Java入门1.语言的历史机器语言 0/1代码低级语言 汇编语言高级语言 C/C+/java/C#2.C/C+/java2.1 CC语言是一种通用的、面向过程式的编程语言,广泛用于系统与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯里奇与肯汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。因为具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。2000年起是使用最为广泛的编程语言。2.2 C+1983年,在C语言基础上贝尔实验室的Bjarne Stroustrup推出了C+。 C+进一步扩充和完善了C语言,是一种面向对象的程序设计语言2.3 Javajava1是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称3.Java发展史3.1 Java诞生Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目3.2 Java发展1995年5月23日,Java语言诞生1996年1月,第一个JDK-JDK1.0诞生1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术1996年9月,约8.3万个网页应用了JAVA技术来制作1997年2月18日,JDK1.1发布1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录1997年9月,JavaDeveloperConnection社区成员超过十万1998年2月,JDK1.1被下载超过2,000,000次1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME)2000年5月8日,JDK1.3发布2000年5月29日,JDK1.4发布2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机2001年9月24日,J2EE1.3发布2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.02005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME2006年12月,SUN公司发布JRE6.02009年4月7日Google App Engine开始支持Java52009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。2010年11月,由于甲骨文对于Java社区的不友善,因此Apache扬言将退出JCP。2011年7月28日,甲骨文发布java7.0的正式版。2014年3月19日,甲骨文公司发布java8.0的正式版。3.3 Java分类 JavaSE 标准版JavaME 微型版JavaEE 企业版4 .JAVA语言的特点安全简单面向对象跨平台性:是其流行的主要原因,支撑起良好的跨平台性的关键于JVM,按不同的平台进行解码5 .java环境搭建5.1 JRE/JDK 5.1.1JRE(Java Runtime Environment Java运行环境)包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。 5.1.2JDK(Java Development Kit Java开发工具包)JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等简单而言:使用JDK开发完成的java程序,交给JRE去运行。5.2 Java环境配置 5.2.1path配置 我的电脑-属性-高级-环境变量 编辑path环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。 打开DOS命令行,任意目录下敲入javac。如果出现javac 的参数信息,配置成功。6.HelloWorld测试用例Public class HelloWorldPublic static void main(String args)System.out.println(“hello world!”) ;7.标识符 标识符 类名 例:Student 规范: 首字母 (字母 下划线 $符号) + 其它部分(数字 字母 下划线 $符号)特别:1.首字母不能以数字开头 2.标识符不能是关键字 例(public,class)*JAVA 关键字/保留字(默认为小写) 1.JAVA中一些附以特定的含义,并用作专门用途的单词称为关键字。 2.JAVA中的关键字全部小写。3.gotu和const虽然从未被使用。但也作为Java关键字保留。变量的声明和赋值内存里存储数据的一部分空间称为变量。使用变量的步骤1. 声明(根据类型开辟空间)2. 赋值 (将数据存入空间)8.数据类型 简单数据类型(数值,字符,布尔) 复杂数据类型(类,接口,数组) 转义符 含义 Unlcode b 退格 u0008 n 换行 u000a r 回车 u000d t 制表符 u0009 双引号 u0022 单引号 u0027 反斜杠 u005c2014.9.129.swith语句Switch(表达式)Case const1: Statement1; Break;Case const2: Statement2; Break;Case const3; Statement3; Break;switch语句特点: a,switch语句选择的类型只有四种:byte,short,int , char。b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。c,结束switch语句的两种情况: 遇到break,执行到switch语句结束。d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。10.for循环初始化结束循环迭代For(init_expr; Boolean test_expr;alter_extr) Statement or block;11.if语句三种格式:1.if(true)执行语句;2.if(条件表达式)执行语句;else执行语句;if(条件表达式)执行语句;else if (条件表达式)执行语句;else执行语句;12.while循环while语句格式:while(条件表达式)执行语句;do while语句格式:do执行语句;while(条件表达式);do while特点:是条件无论是否满足,循环体至少执行一次。13.类和对象13.1 类与对象的关系java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。对象即是该类事物实实在在存在的个体如: 人类/小王 汽车/宝马汽车 等;13.2类的定义生活中描述事物无非就是描述事物的属性和行为。Java中用类class来描述事物也是如此属性:对应类中的成员变量。行为:对应类中的成员函数。定义类其实在定义类中的成员(成员变量和成员函数)13.3 创建类定义类:public class 类名;定义对象: 类名 对象 = new 类名();使用对象: 对象.成员变量 / 对象.成员方法 例子:class Computer/对Computer这类事物进行描述public class ComputerString color ; /颜色int weight ; /重量public void playGame( ) /成员方法 显示汽车颜色和轮子数量 System.out.println(我在玩游戏!”); public static void main(string args) Computer computer = new Computer(); computer.color=”red”; computer.whight=”200”; computer.playGame();2014.9.1514.构造方法14.1构造方法语法结构 构造方法是在类中定义的方法,构造方法的定义有如下两点规则:1名称必须与类名相同2.构造方法没有返回值,但不能写void。语法:访问修饰符 类名() /构造方法体14.2通过构造方法初始化成员变量 Class CellInt row; int col;Public Cell(int row1,int col1) row=row1; col=col1;Class TestCell Public static void main(string arg) Cell c1=new cell(1,1); Printcell(c1);创建对象时,构造方法写在new关键字后,可理解为:new创建了对象,而构造方法对该对象进行初始化。14.3默认的构造方法 1.任何一个类必须含有构造方法; 2.如果源程序中没有定义,编译器在编译时将为其添加一个无参的空构造方法(默认的构造方法) 注:一个类中有一个默认的无参构造方法,当写了有参的方法后,默认的无参构造方法消失。15创建对象在内存中的表现 当new一个对象时在堆中开辟一个内存空间放这个对象,而在栈中放它的地址,地址指向堆中的对象。2014.9.1616.引用类型变量 引用变量中内存的分配 栈中放地址,堆中放属性和方法。简单数据类型传递参数时仅传值。引用数据类型传参时相当于传递地址(String特殊)。17.变量分类 局部变量:只在局部可以被使用的变量。方法内部定义的,方法的形参,游离块内部定义的。 成员变量(全局变量):在整个类内部都可以使用的变量。如:类的成员变量。判断依据:变量定义的位置。 同一个类中,方法间调用,直接用方法名即可。 成员变量可不被初始化就使用,因系统默认初始化。局部变量使用前必须初始化。18.对象的构造次序 类 成员变量 游离块 构造方法 New关键字创建对象 1.创建对象空间。 2.初始化对象的成员变量 3.调用对象游离块 4.调用对象的构造方法19.this关键字与方法重载(I)this关键字在一个类中,当调用构造方法创建对象实例时,如果类的实例变量和局部变量名称相同,则要用this关键字区分。反之,编译可能出错。(II)this关键字事例public class Test String name; Public Test(String name) = name; (III)使用this关键字的情况(1)在一个构造方法中,通过this关键字调用所在类中的另一个构造方法。(2)在一个实例方法内,局部变量或参数与实例变量名称相同,编译口器无法区分变量,这时要用this关键字。(3)在一个实例方法内,通过this关键字访问当前实例的引用 方法重载在同一类中,方法名相同,参数列表不同,称为方法的重载。2014.9.1720.static关键字 Static关键字可以修饰成员方法、成员变量、构造块。 其修饰的成员变量叫静态成员变量或类属性;修饰的成员方法叫静态方法;修饰的游离块叫静态游离块。 调用构造方法创建对象时先调用静态游离块,其次是普通游离块。 静态成员变量被所有方法共享,是类级别的,可以用类名直接调用。静态方法中用变量必须声明为类级别。 类名调用对象时必须为static; 一个类中的属性可以是其他的类类型。21.final关键字 Final int AGE ;final修饰变量表示声明一个常量。 Final还可以修饰方法、类;不可以修饰游离块。22.string String name = new String(); String为引用数据类型(类);Integer b = new Integer();封装类(int)八种简单数据类型的封装类:除intInteger,charCharacter外其余都是吧首位大写即可。String S1 =”abc”;String s2 =”abc”;S1=s2;String s1 = new string(“abc”); String s2 = new string(“abc”);S1!=s2;String 常用方法 Length() 字符串长度 Equals() 比字符串内容。仅在string比内容,其他比地址 CharAt() 获取指定位置字符 IndexOf() 返回字符串第一次出现的位置 Substring(a,b) ab间的子字符窜,包含a,不包含b Substring(c) 包含c及后边的字符串 Trim()忽略前后空白 Replace(a,b)替换旧字符为新的字符。用b替换a;2014.9.1823.数组23.1 数组的定义 : 同一种类型数据的集合。其实数组就是一个容器。23.2 数组格式:元素类型 数组名 = new 元素类型元素个数或数组长度;元素类型 数组名 = new 元素类型元素,元素,;23.3数组初始化 静态初始化/动态初始化 23.4 数组常见异常 NumberFormatException 数据格式异常 ArrayIndexOutOfBoundsException数组脚标越界异常23.5数组遍历,排序冒泡排序:java自带排序算法: int num=new int5,8,1,6,4 Arrays.sort(num)24.面向对象特征24.1四种访问控制private关键字:是一个权限修饰符。用于修饰成员(成员变量和成员函数)被私有化的成员只在本类中有效将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。 24.2 封装 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。将不需要对外提供的内容都隐藏起来。可以把属性都隐藏,提供公共方法对其访问。25.继承25.1继承的定义及特点多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 多个类可以称为子类,单独这个类称为父类或者超类或基类。子类继承父类所有的成员变量和成员函数,但可以直接访问父类中的非私有的属性和行为。 私有的 继承但访问不到 通过 extends 关键字让类与类之间产生继承关系。class SubDemo extends Demo继承的出现提高了代码的复用性。继承的出现让类与类之间产生了关系,提供了多态的前提。Java只支持单继承,不支持多继承。一个类只能有一个父类,不可以有多个父类。25.2 super 关键字super和this的用法相像this代表本类对象的引用super代表父类的内存空间的标识。当子父类出现同名成员时,可以用super进行区分子类要调用父类构造函数时,可以使用super语句。super(参数);super.方法名();super.属性;2014.9.1926.多态表现多种形态的能力的特征。1. 子类继承父类,子类重写父类的方法2. 编写方法时,使用父类定义的方法。3. 运行时,根据实际创建的对象类型动态决定使用哪个方法。27.抽象abstract:抽象类/方法,抽象类不能创建对象,抽象方法只有方法、声明,而部分没有方法实现,一个类中有抽象方法,则其必为抽象类,反之不一定。final和abstract不能同时出现final修饰的类表明此类不被实现,到此为止。28.Java接口Java接口里一些方法特征的集合,但没有方法的实现。Interface Flyablepublic void fly();Java接口中定义的方法在不同的地方被实现,可以是有完全不同的行动。例:public class SoundCard implements PCIPCI sound = new SoundCard();2014.9.2229.Java异常处理Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下:try程序代码catch(异常类型1 异常的变量名1)程序代码catch(异常类型2 异常的变量名2)程序代码finally程序代码catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代码抛出异常的类型,异常的变量名表示抛出异常的对象的引用,如果catch捕获并匹配上了该异常,那么就可以直接用这个异常变量名,此时该异常变量名指向所匹配的异常,并且在catch代码块中可以直接引用。这一点非常非常的特殊和重要!Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。对于可能出现异常的代码,有两种处理办法:第一、在方法中用try.catch语句捕获并处理异常,catach语句可以有多个,用来匹配多个异常。例如:publicvoidp(intx)try.catch(Exceptione).finally.第二、对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。例如:publicvoidtest1()throwsMyException.if(.)thrownewMyException(); 29.1异常处理的语法规则:第一、try语句不能单独存在,可以和catch、finally组成 try.catch.finally、try.catch、try.finally三种结构,catch语句可以有一个或多个,finally语句最多一个,try、catch、finally这三个关键字均不能单独使用。第二、try、catch、finally三个代码块中变量的作用域分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。第三、多个catch块时候,Java虚拟机会匹配其中一个异常类或其子类,就执行这个catch块,而不会再执行别的catch块。第四、throw语句后不允许有紧跟其他语句,因为这些没有机会执行。第五、如果一个方法调用了另外一个声明抛出异常的方法,那么这个方法要么处理异常,要么声明抛出。29.2.1创建自定义的异常创建Exception或者RuntimeException的子类即可得到一个自定义的异常类。例如:publicclassMyExceptionextendsExceptionpublicMyException()publicMyException(Stringsmg)super(smg);29.2.2使用自定义的异常用throws声明方法可能抛出自定义的异常,并用throw语句在适当的地方抛出自定义的异常。例如:在某种条件抛出异常publicvoidtest1()throwsMyException.if(.)thrownewMyException();29.3常见异常算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCastException数组负下标异常:NegativeArrayException数组下标越界异常:ArrayIndexOutOfBoundsException违背安全原则异常:SecturityException文件已结束异常:EOFException文件未找到异常:FileNotFoundException字符串转换为数字异常:NumberFormatException操作数据库异常:SQLException输入输出异常:IOException方法未找到异常:NoSuchMethodException2014.9.2330.集合 CollectionSet list MapSortedset sortedMapSet、list、Map统称为java集合。1 Set:不能包含重复的元素2 List:是一个有序的集合,可包含重复的元素3 Map:包含了key-value堆,不能包含重复的key30.1 list 1.list对象: Integer in = new Integer(“1”); List.add(i); JDK自动做上述转换 2.list.size(); For(int I = 0;isize;i+) User user = (User)List.get(i); 强制类型转换 String name = suer.getName(); System.out.println()”;3.contains判断集合有没有该对象 if(List.contains(user1) system.out.println(“”);4.list.remove(User1); 移除对象ArrayList(). 善于做遍历操作是基于动态数组的数据结构LinkedList().便于做插入删除操作是基于链表的数据结构List list = new LinkedList();List.add();List.add first();List.removeFirst();5.List list = new ArrayList();范型.限制装入的数据类型User user = new User();user.setAge(10);user.setName(“”);List.add(user);30.2 SetSet set = new HashSet();Set.add(“1”);Set.add(“2”);Set.add(“1”);Itertar it = set.iterator(); 1. 选代 While(it.hasNest() String string = (String)it.next(); System.out.println(String);30.3 Map Map 键值对 Key值唯一,否则覆盖2014.9.2431.AWTjava桌面应用程序,不依赖于浏览器GUI(Graphics User Interface):图形用户界面AWT(Abstract Window Tools):抽象窗口工具集Java.awt:提供了基本的组件和相关的类Java.awt.color:处理颜色Java.awt.datatransfer:提供数据传输和剪切板功能Java.awt.dnd:实现拖拽功能在java.awt这个包中,提供了基本的组件以及相关类和方法容器组件必须放在容器中才能显示容器主要包括:1. 窗口2. 面板Frame类是Window类的子类有标题,可通过拖拉改变大小默认为不可见,可用setVisible(true)使其显示出来默认的布局管理器是BorderLayout使用setLayout方法改变布局管理器BorderLayout把整个窗口划分为五个区域东南西北中FlowLayout(流式布局管理器)GUI Component从左到右按顺序配置在Container中,若到达右边界,则会折回到下一行FlowLayout是Panel和Applet的默认管理器Frame frame = new Frame(“flowlayout”);Frame.setLayout(new FlowLayout(FlowLayout.CENTER);LEFT或者RIGHTGridLayout网格布局管理器GridLayout将Component配置在网格2014.9.2532.Awt事件处理当事件源发生事件时,就会自动调用该事件的接口方法,而方法中就是编写的事件处理程序代码。 要实现AWT中事件处理,需以下三步: 1,事件源 能够产生事件的对象都可以成为事件源,如文本框,按钮等。也就是说,事件源必须是一个对象,而且这个对象必须是Java认为能够发生时间的对象。2.监视器 需要一个对象对事件源进行监
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办事处安全生产教育培训课件
- 农业政策与法规课件
- 养护安全作业培训资料课件
- 农业安全基础知识培训课件
- 化工仪表工安全培训课件
- 内部消防安全培训情况课件
- 内部安全防范教育培训课件
- 鸭脖店营销方案(3篇)
- 内训师课件范例
- 内蒙安全生产培训平台课件
- 2025年度反洗钱阶段考试培训试考试题库(含答案)
- 超高强钢冷冲压三点弯曲与辊压弯曲性
- 基于双减背景下小学英语项目式学习创新研究 论文
- 人教版(2019)选择性必修第一册Unit+2+Using+Language+课件
- 使用智能手机教程课件
- 苏教版三年级数学(下册)《间隔排列》课件
- 2023-2023年中国工商银行校园招聘考试历年真题、考查知识点以及备考指导
- 临时聘用合同模板(三篇)
- 电力系统分析基础教案-按课时
- 动漫及动漫文化的定义
- 江苏亿洲再生资源科技有限公司资源综合利用技改提升项目 环评报告书
评论
0/150
提交评论