【尚硅谷-IT精英计划】JavaSE学习笔记视频下载导航(Java学习路线图)JavaEE学科体系:Android学科体系:--------------------------------------JavaSE学习目录------------------------------------第1章:Java语言概述第2章:基本语法第3章:面向对象编程第4章:高级类特性1第5章:高级类特性2第6章:异常处理第7章:Java集合第8章:泛型第9章:注解&枚举第10章:IO流第11章:多线程第12章:Java常用类第13章:Java反射第14章:网络编程【基础体系框架】--------------------------------第1章:Java语言概述-------------------------------1.1基础常识软件:系统软件和应用软件人机交互方式:图形化界面和命令行方式常用的DOS命令:dir:列出当前目录下的文件以及文件夹md:创建目录rd:删除目录cd:进入指定目录cd..:退回到上一级目录cd\:退回到根目录del:删除文件exit:退出dos命令行----学会如何在DOS命令下编译并运行java源程序(重点):javac.exejava.exe1.2Java语言概述了解语言的分代:第一代:机器语言第二代:汇编语言第三代:高级语言(面向过程&面向对象)1.3Java程序运行机制及运行过程Java语言的特点:①纯面向对象性:类&对象;面向对象的三大特性:封装性、继承性、多态、(抽象)②健壮性:-----Java的内存回收机制③跨平台性:一次编译,到处运行。-----JVM1.4Java语言的环境搭建:掌握下载、安装JDK,并且配置环境变量(重点)1)JDK和JRE以及JVM的关系2)JDK的安装3)配置path环境变量path:window执行命令时所需要搜寻的路径。将D:\Java\jdk1.7.0_07\bin复制在path环境变量下。1.5开发体验—HelloWorldpublicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!!);}}1.6小结第一个程序1)Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本类中的HelloWorld类。2)一个Java源程序中可以存在多个class类,但是最多只能有一个类声明为public.若存在声明为public的类,那么这个源程序文件的名字必须以此类的类名来命名3)程序的入口是publicstaticvoidmain(String[]args){}称为主方法。它的写法是固定的。4)Java方法由一条条语句构成,每个语句以“;”结束。5)Java语言严格区分大小写6)大括号都是成对出现的,缺一不可,用于表明类中成员的作用范围。1.7常见问题及解决方法1.8注释作用:提高了代码的阅读性;调试程序的重要方法。三种注释:当行注释://注释的内容多行注释:/*注释的内容*/文档注释(Java所特有的,可以为javadoc命令所解析):/**注释的内容*/1.9JavaAPI文档:API:applicationprogramminginterface--------------------------------第2章:基本语法-------------------------------2.1关键字&保留字被Java语言赋予了特殊含义,用做专门用途的字符串(单词)2.2标识符凡是自己可以起名字的地方都叫标识符。通常有:类名、变量名、方法名。。。。包名、接口名、。。。规则:(必须按照如下的规则执行,一旦某规则不符合,编译运行时就会出问题)由26个英文字母大小写,0-9,_或$组成数字不可以开头。不可以使用关键字和保留字,但能包含关键字和保留字。Java中严格区分大小写,长度无限制。标识符不能包含空格。命名的习惯:(如果不遵守,实际上程序编译运行也不会出问题)包名:多单词组成时所有字母都小写:xxxyyyzzz类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ2.3变量1.变量的分类1)存在的位置的不同:成员变量(属性、Field)(存在于类内部,方法体的外部)和局部变量(方法体的内部、构造器的内部、代码块的内部、方法体或构造器的形参部分)2)数据类型的不同:基本数据类型(8种)整型:byte(1个字节)、short、int(默认值类型)、long(后缀是l或L)。浮点型:float(后缀是f或F)和double(默认值类型)。布尔型:boolean(只有两个值:true和false,绝对不会取值为null)字符型:char(1个字符)引用数据类型:类(比如:String字符串类型)、接口、数组2.如何声明:变量的类型变量的名字初始化值(显式的初始化、默认初始化)inti;i=j+12;booleanb=false;Stringstr=atguigu;Customerc=newCustomer();3.变量必须先声明后使用4.使用变量注意:变量的作用域:一对{}之间有效初始化值5.自动类型转化&强制类型转化(重点)(不包含boolean型,及String型)1)强制类型转化时,可能会损失精度。2.4进制十进制二进制八进制十六进制1.进制之间的转化:会将-128到127范围内的十进制转化为二进制&能将一个二进制数转换为十进制数(延伸:十进制、二进制、八进制、十六进制)2.对于几类基本类型的数据的某个具体值,能够用二进制来表示。同时,如果给出一个数据的二进制,要能够会转化为十进制!正数:原码、反码、补码三码合一。负数:原码、反码、补码的关系。负数在计算机底层是以补码的形式存储的。2.5运算符算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符“&”和“&&”的区别:&:当左端为false时,右端继续执行&&:当左端为false时,右端不再执行“|”和“||”的区别:|:当左端为true时,右端继续执行||:当左端为true时,右端不再执行位运算符&|^~三元运算符1.三元运算符与if-else语句的联系1)三元运算符可以简化if-else语句2)三元运算符一定要返回一个结果。结果的类型取决于表达式1和2的类型。(表达式1和2是同种类型的)3)if-else语句的代码块中可以有多条语句。2.6流程控制条件判断:if(表达式1){//执行语句}elseif(表达式2){//执行语句}else{//执行语句}1.一旦执行条件判断语句,有且仅有一个选择“路径”里的代码块被执行。2.如果多条表达式间是“互斥”关系,彼此是可以调换顺序。如果多条表达式间存在“包含”关系,一定要将范围小的表达式写在范围大的表达式对应的语句的上面。3.选择判断语句可以“嵌套”4.若执行语句只有一句,那么对应的一对{}可以省略。选择结构:switch-case1.结构2.表达式可以存放的数据类型:intbyteshortcharString枚举3.表达式存放是数值或者说是离散的点所代表的常量,绝对不是取值范围。3.default是可选的。default的位置也不是固定的,当没有匹配的case时,执行default4.break在switch-case中的使用。当执行到某条case语句后,使用break可以跳出当前的switch语句。如果此case中没有break,那么,程序将依次执行下面的case语句,直至程序结束或者遇到break。【switch-case与if-elseif-else的联系】1.表达式是一些离散的点,并且取值范围不是很大,要求是intbyteshortcharString枚举类型之一。建议使用switch-case。执行效率更高2.如果表达式表示的是范围(或区间)、取值范围很大,建议使用if-elseif-else循环结构:①初始化条件②循环条件部分③循环体部分④迭代部分1.for循环for(①;②;④){③}执行顺序:①-②-③-④-②-③-④-…-②-③-④-②截止//死循环:for(;;){//要循环执行的代码。}2.while循环①while(②){③④}//死循环:while(10){//要循环执行的代码}注意:for循环和while循环之间可以相互转化!3.do-while循环①do{③④}while(②);//程序至少执行一次!掌握:1.会使用for循环和while循环2.能够实现for循环和while循环的相互转化。循环可以相互嵌套例题1.九九乘法表;例题2.输入1-1000之间的所有质数2.7关键字:break&continuebreak1.使用范围:循环结构或switch-case结构中。2.在循环结构中:一旦执行到break,代表结束当前循环。continue1.使用范围:循环结构2.在循环结构中:一旦执行到continue,代表结束当次循环。相同点:如果break或continue后面还有代码,那么这些代码将不会被执行。所以当有代码,编译会出错!如何使用标签,实现结束指定“层次”的循环。(理解)例题:classTest{publicstaticvoidmain(String[]args){for(inti=1;i=100;i++){if(i%10==0){break;//continue;//下面不能写入任何代码}System.out.println(i);}}}2.8数组1.如何创建一维数组1)数组的声明:int[]i;String[]str;Animal[]animal;2)数组的初始化:①动态初始化:i=newint[4];//i[0]开始,至i[3]结束。默认初始化值都为0;i[0]=12;i[1]=34;....②静态初始化:str=newString[]{北京,尚硅谷,java0715班};//也是先有默认初始化赋值,然后显示的初始化,替换原来的默认初始化值//对于引用数据类型来说,默认初始化值为null。//对于基本数据类型来说:byte、short、int:0long:0Lfloat:0.0Fdouble:0.0char:'\u0000'boolean:false引用类型:null2.数组元素的下角标从0开始。3.float[]f=newfloat[]{1.2F,3.4F,5.6F};double[]d=newdouble[4];d[1]=3.4;.....4.数组的长度:.length;5.数组的遍历:(习惯使用for循环)for(inti=0;if.length;i++){System.out.print(f[i]+\t);}6.常见的异常:1)ArrayIndexOutOfBoundsException:数组下标越界异常下标从0开始,到length-1结束。如果下角标的取值不在此范围内,将报此异常2)空指针异常(NullPointerException)2.二维数组1)①动态初始化:---int[][]i=newint[3][];i[0]=newint[2];i[1]=newint[3];i[1]=newint[4];---String[][]str=newString[2][4];②静态初始化:int[][]i=newint[][]{{1,2,3},{3,4},{0}};2)遍历(补充完整)7.数组常用的算法:最大值、最小值、和、平均数、排序(涉及数据结构中各种排序算法)、复制、反转。8.Arrays:操作数组的工具类Array.sort(数组类型形参);可以对形参部分的数组进行排序,默认是从小到大的顺序。---------------------------