1 Java诞生于91年,面世于95年,09年被oracle收购,14年发布了1.8版本()常用
* 2:java三大平台
* J2SE:最基础的内容.其余版本都是在其基础上进行扩展
* J2EE:浏览器客户端模式面向企业
* J2ME:嵌入式开发 目前主要针对的是手机
* JDK:java的开发环境,内含开发工具,运行环境
* JRE:java的运行环境,内含java虚拟机
* JVM:java的虚拟机,用来解释(运行)我们的字节码文件,将class文件根据操作系统的不同,按照不同的方式
* 将代码解释出来
* java的跨平台,主要就是因为JVM虚拟机的存在
* 平常我们写代码的时候编写的是.java文件,而程序执行的时候实际上执行的是.java
*文件编译出来的.class文件,如果运行的时候提示无法找到主类,请检查.class文件。
* **************************************
* 标识符命名规则:
* 什么是标识符:我们自定义的项目名,包名,类名。变量名,方法名等都叫标识符。
* 总体规则:
* 1:标识符由数字,字母,下划线,¥组成
2:不能以数字开头,并且字母区分大小写
3:不能是Java中的关键字与保留字
4见名之意
*项目名与类名的命名规则:
* 1:要求每个单词的首字母都大写
*包名的命名规则:
* 1反域名形式 正常的域名:百度_www.baidu.com 反域名:com.baidu
* 2:所有字母全部小写
* 3:多个单词之间用“."分割
*变量名与方法名:
* 1:首字母小写,其余首字母大写 例:driverClassName
*常量名:
* 1:所有字母全部大写,多个单词用“_"分割 例:DRIVER_CLASS_NAME
*********************************************************
*基本数据类型:
* 整数:byte short int long
* 浮点:float double
* 字符:char
* 布尔:boolean
*引用数据类型:
* 类:字符串。以及别人提供的工具类,以及所有我们自己
* 数组
* 接口
* 枚举
*变量:专门用于存储我们的数据,不同类型的变量存储的数据不能相同
*创建一个变量分为两步,首先需要确定存储类型,然后根据类型声明
*对应类型的变量 ,并给其自定义一个变量名称,然后通过名称对变量进行初始化(赋值)
*操作,一个变量可以通过名称多次进行初始化
* 第一步: 类型 变量名;
* 第二部初始化: 变量名=值;
* 上面两步可以合成一步: 类型 变量名=值;
*变量的优点:方便数据的重复使用,通过变量名可以多次进行初始化
*变量的缺点:只能存储一个数据, 不能变
*
*常量:所有被final修饰的变量就叫做常量,常量的值是不可以改变的,
*所以常量创建之后不能在进行二次初始化操作
*
*Java中的运算符:
* 算数运算符: +,—.*,/,%,++,--
* 字符串连接符:+(任何数据与字符串拼接都会变成字符串)
* 赋值运算符: =,+=,—=,/=,==,!=() 字符串不能用于运算符
* 关系运算符: >,<,>=,<=,++,!= 字符串不能用于关系运算符
* 逻辑运算符: &&(并且),&,||(或者).| 重点在于单个与一对的区别
* 三目运算符:表达式?true:false
* 位运算符:&,|,^,<<,>>
*基本数据类型之间的转换(不包含Boolean)
* 自动转换:
* 1:所有整形都可以自动转换
* 2:若类型相同,可以占用内存小的变量可以自动转为大的,
* 3:char可以认为与short同级,但是不能与short互相转换
* 强制转换:
* 1:大转小需要进行强制转换
* 2:浮点转整数需要进行强制转换
* 3:所有类型转char都需要强制转换
* 4:强制转换可能造成数据溢出以及精度丢失
* char c =545; 将545赋值给char 不报错的原因是,这个值没有超出char的存储范围。
c=c+1; 报错的原因,是因为系统不知道c的值是多少,在+1怕超出char的存储范围。
c+=1; 不报错的原因,是因为+=自带强制转换。
*
*********************************************
*java中的流程控制:
* 选择分支语句:
* 1:if(布尔表达式){
* 当上面表达式为true时执行的代码
* }else{
* 当上面表达式为
* }
*if的语法非常简单,主要就是判断条件是否成立,如果如果成立则执行代码,如果不成立的话有else则执行else的
代码,如果没有else则继续往下执行,当有多个if的时候,if有可能会都执行例如:
int i =5;
if(i<14){
System.out.println("未成年");
}
if(i<18){
System.out.println("少年");
}
if(i<25){
System.out.println("青年");
}
上面代码中,未成年,少年,青年语句都会执行不符合我们的条件,这个时候我们就需要使用else将多个if链接起来
让其成为同一个选择分支语句,从上往下去判断条件是否成立,如果成立则不继续往下判断。
int i =5;
if(i<14){ //如果i小于14 则不再继续判断接下来的else if。
System.out.println("未成年");
}else if(i<18){
System.out.println("少年");
}else if(i<25){
System.out.println("青年");
}
if中的表达式支持使用Java中所有的关系运算符以及逻辑运算符。例如:
if(i<14&&j>17){
}
*switch(变量):
* case 值:
* break;
* case 值;
* break;
* .......
* default:
* break;
*不同于if,,switch的小括号中放的直接是具体的变量,case中放的是具体的值,如多case中的值与变量中的值相等
*就执行case里面的代码,当头case匹配成功之后接下来的所有case值都不在进行对比而是执行所有的代码,所以我们
*需要在每一个case之后加上break,如果所有的case值都与变量不相等的话则执行default中的代码
*break:默认打断当前作用域的代码
*switch不支持java中关系运算符与逻辑运算符
*
*
**********************************************
*循环语句:
*一:for(声明变量并初始化;判断循环条件;对变量重新初始化){
3
需要循环的代码。
}
*1:首先执行的是声明变量并初始化操作,且次步骤在本体中只执行一次。
*2:执行判断循环条件的操作,如果返回true则执行循环代码题,如果为false则不执行循环。
*3:当循环代码题执行完成后进行对变量重新初始化的操作防止死循环。
*for循环可以进行嵌套操作,外层for循环每次重新执行的时候,内层for循环所有的一切都会重新执行。
*for循环的小括号中可以什么都不写,但是分号;不能省略(不推荐)
*break: 默认打断当前作用域的代码,在for循环中默认打断当前for循环的代码,可以使用break标记来打断指定
*作用域的代码。
*continue: 跳过当前本次循环,继续开始下一次循环(迭代)。
*2:while(布尔表达式){
* 循环代码;++;
*}
*while的小括号中只能放布尔表达式,如果表达式返回true则执行循环体。如果返回false则不执行,虽然while中没有要求
*让我们声明变量。并重新出书画,但是我们还是要在循环代码体中想办法来打断循环,不然会变成死循环
*3:do{
* 循环代码
*}whilc(布尔表达式)
*do while相当于while反转了过来,先执行循环体然后去判断布尔表达式的结果,如果返回为true则继续循环
*for与while的共同点 先执行循环体然后来决定是否循环 两者里的代码都有可能不执行,所以两者都
*做有可能不执行的循环体
*do while:由于是先执行循环体在去判断条件 所以do while是最少执行一次的循环体
*数组:
* 因为变量在同一时间只能存储一个字,所以java扩充了一种数据类型,一个数组可以存放多个值,数组主要是靠
*数组名[索引下标]对其进行操作,可以通过数组名[]下标=值 对数组进行复制,也可以通过数组名[下标] 取出里面存放的值
*数组的下标从0开始计算,而长度是从1开始计算的所以数组的下标永远比长度少一位
*数组的创建:
* 动态化: 类型[] 对象名=new 类型[长度]控制台输出用
* 静态化: 类型[] 对象名={值,值}
*数组在进行动态化的时候,由于只是指定了其存放的数据类型以及长度,并没有对数组里面的元素进行赋值操作,所以数组中的所有的元素
*进行赋值操作,所以数组中所有元素都为类型的默认值,整数位0 浮点是0.0 布尔:false 字符是:空格 引用数据类型:null
*而静态初始化的时候由于已经对里面的元素进行了赋值操作,所以数组中元素的值就为大括号内的值
*数组的优点:一个数组可以保存多个值
*数组的缺点:一个数组只能保存一个类型的数据,数组的长度在初始化的时候就已经指定了,无法改变。
*
*数组的排序:
* 常用排序算法有冒泡,选择,快速等
* 冒泡:每次都有相邻的两个元素进行对比,如果大于|小于则互换位置,先排序出来的元素被放到数组末尾
* 选择:从数组中直接选择出最大|最小的元素,然后 将其放在数组的首位
*