Java基础班前6天总结 基础班
day01 · Java平台 · J2SE标准版:桌面应用程序的开发。是其他两者的基础。 · J2ME小型版:嵌入式应用程序,移动端开发,如机顶盒、手机等。已被安卓替代了做手机端开发。 · J2EE企业版:Web应用程序开发(服务器端开发)。例如天猫、京东等后台开发。 · 跨平台原理 · 平台:操作系统Window,Linux,Mac。 · JVM:实现跨平台需要依赖各个版本的Java虚拟机JVM(Window,Linux,Mac三个版本)。 · JRE和JDK · JRE:Java运行环境,包括虚拟机和lib文件夹(程序所需核心类库)等,运行程序只需安装JRE即可。 · JDK:提供给开发程序者使用,包括JRE、开发工具(编译工具javac.exe、运行工具java.exe)。安装JDK不用安装JRE。 · JDK开发程序=>交给jre保证程序正常运行=>JVM实现程序跨平台运行。
· 运行源代码 · 在命令行命令中对原代码进行编译生成字节码文件:使用cd命令进入bin文件夹=>使用javac命令运行helloworld.java生成.class字节码文件=>使用java命令执行helloworld(不需要.class!)
· 配置环境变量 · 为了在任何目录下运行JAVA程序。 · 注释 · 单行注释:// · 多行注释:/**/ · 文档注释:/* / 用于描述方法、类的说明,调用时鼠标滑过可以查看注释 · 关键字(赋予特殊含义的单词) · 特点 · 组成关键字的字母都是小写。 · 常见的代码编辑器有特殊的标记。
· 常量(程序中不可改变的量) · 分类 · 字符串常量:"hello" · 整数常量:5 · 小数常量:123.4 · 字符常量:'a' · 布尔常量:true,false · 空常量:null · 变量(内存中的一块区域,程序执行过程中,其值在【一定范围内】发生改变,通过数据类型来限定) · 格式【数据类型 变量名=初始化值;】 · 计算机存储单元 · 1 B(【字节是最小存储单元】)=8 b(位、比特) · 1 KB=1024 B · 1 MB=1024 KB · …… · 数据类型(java必须指定数据类型) · A:基本数据类型(4类8种) · 整型:默认用int · 【字节byte表示范围:-128~127、正负2的8次方】 · short · int · long类型要加大写L,例如123L · 浮点型:默认double · float类型加F。 · double · 字符型:char -128-127 · 布尔型:boolean · B:引用数据类型(数组、类、接口) · 标识符:用来给包、类、方法、变量起名字的符号 · 组成:Unicode字符(数字、大小写英文、汉字)、下划线、美元符。 · 注意: · A:不能以数字开头 · B:不能是关键字 · 变量 · 定义格式:数据类型 变量名=初始化值; · 注意:float数据类型直接加F,LONG数据类型直接加L · 变量定义的注意事项: · A:变量未赋值,不能直接使用。 · B:变量只在它所属的范围内有效。(大括号内有效) · C:一行上可以定义多个变量,但是不建议。 · D:初期可以使用拼音做变量名,工作中严禁使用拼音,应使用英文单词。 类型的转换 · 隐式转换 · 转换规则:byte、short、char=>int=>long=>float=>double · 注意:两个byte类型变量相加会转化成int,因为相加可能超出byte范围,自动加一级。 · 强制转换 · 格式:目标类型 变量名=(目标类型)(被转换的数据) · 建议:一般不做强制转换,可能损失精度。 day02 · Eclipse · src 源代码目录 · bin 编译文件目录 · 创建项目=>包=>类 · Eclipse快捷键及常用操作 · 内容辅助键 alt+/ · 注释 · 单行 选中内容,ctrl+/ 取消再来一次 · 多行 选中内容,ctrl+shift+/ 取消注释ctrl+shift+\ · 格式化 ctrl+shift+f · 整行前移 选中内容,shift+tab · ALT+ENTER属性; · ct+d删除一行; · shift+enter在任何位置下一行; · 左手shift+字母切换大写 · 选中+shift+tab:取消一个缩进;选中+tab:整体缩进 · 格式化设置为ctrl+alt+f · 选中包,ctrl+n:快速新建包和类。 · 重命名项目、包、类:右键-Refactor-Rename。或者F2 · 导入项目:在项目区域右键-import-General,展开-Existing Projects into Workspace-点击next-选择要导入的项目-注意:这里选择的是项目名称 · 导包快捷键:ctrl+shift+o · shift+alt+a:开启框选 · ctrl+enter:貌似可以用来快速打断字符串 · 运算符 · 算术 +,-,*,/,++,--,% · 字符与数字相加为ASCII码相加,与字符串相加为拼接。 · /:整数相除只能得到整数,要想得到小数必须有浮点数参与计算。【例如:3/4=0;3.0/4=0.75。】(隐式转换) · +:字符参与加法运算,其实是拿字符在计算机中储存的数据值来参与运算的。‘A’+10=75,【记住:'A'65 'a'97 '0'48】。 · +:字符串的加法是与其他拼接,但是注意【运算是从左到右】。10+20+“ab”=30ab;“ab”+10+20=ab1020。 · 常用方法:数值转换为字符串:+空字符串,例如:10+“”。 · %:取余得数的正负已左边的正负为准。例如:-12%5=-2,12%-5=2。 · %用途: · 判断是否是奇偶数:偶数x%2=0,奇数x%2=1。 · 赋值 =,-=,+=,*=…… · 注意:-=,+=,*=……【隐含了强制转换,例如:byte a=1; a+=10相当于a=(a的强制类型)(a+10),但是写成a=a+10错误】 · 关系 ==,!=,>,>=,<,<= · 注意:把==写成=不会报错。例如:a==1输出true,a=1输出为1。 · 逻辑 &,|,^,!,&&,|| · ^为相同则false,不同则true。举例:判断情侣关系。 · 使用^实现两个int变量交换(boolean变量也可以,double、char、String不可以使用),不借助临时变量,不增加系统资源的消耗,代码如下:
a=a^b;
b=a^b;
a=a^b; · 【&&与&的区别:&&有短路效果,左边为false则不再执行。&左边无论什么右边都执行。】 · 【||与|的区别:||为左边为ture则右边不执行。|左边无论什么右边都执行。】 · 闰年算法:(i % 4 == 0 && i % 100 != 0) || (i % 400 == 0) · 闰年算法说明:四年一闰: 能被4整除的是,百年不闰: 能被100整除的不是,四百年再闰: 能被400整除的是 · 三元 · 格式:(关系表达式)?表达式1:表达式2; · 执行过程:如果表达式为true,表达式1为结果,反之为表达式2。 · 返回值取表达式1或者表达式2。
· 键盘录入 · 使用步骤 · 导包: · 手动录入:import java.util.Scanner; · 导包还可在下一步报错时点击自动生成。 · 快捷键(推荐):ctrl+shift+o · 创建键盘录入对象: · Scanner sc=new Scanner(System.in); · 接收数据: · int i=sc.nextInt(); · String i=sc.next(); · double i=sc.nextDouble(); day03 · switch · 语句格式:
switch(表达式){//【表达式只能是:bety,short,int,char,String,枚举。】
cast 值1:【只能是常量,而且值的类型要与小括号中一样】
语句体1;
break;//中断【如果这里不写break会继续运行一个语句体,这叫“case穿透”】
cast 值2:
语句体2;
break;
……
default://所有值不匹配执行
语句体n+1;
break;//最后的一个break可以省略
} · 循环结构 · for(知道循环次数的场合使用) · for(初始化;判断条件语句;控制条件语句)
{ 循环体语句;
} · 多条语句:for (int strart = 0,end=arr.length-1;strart<=end;start++,end--) {} · while【不知道循环次数的场合使用】 · 初始化语句;
while(判断条件语句){循环体语句;控制条件语句;
} · 无限循环:while(true){};//while(true){}可以通过break中断 · do…while(不知道循环次数的场合使用,至少执行一次,一般不用) · 初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句); · 三种循环语句的区别 · do……while循环语句至少执行一次循环体。 · for循环结束后,初始化的变量不能再被使用了,而while循环结束后,初始化的变量还可以继续使用。 · 推荐使用循环顺序:for=>while=>do…while。 跳转控制语句(离开使用场景没有意义!) · break:中断 · 使用场景: · switch语句中 · 循环中 · 作用:结束所有循环!(如果循环嵌套使用的话,只中断break语句所在的最近的循环) · continue:继续 · 使用场景:循环中 · 作用:结束本次循环! day04 Random · 生成一个随机数 · 导包:import java.util.Random; · 创建对象 · Random r=new Random(); · 获取随机数 · int number=r.nextInt(x);//x为任意整数 · 上面产生一个数0<=number<x的数据。 [0,x) · 【获取1-100之间随机数:r.nextInt(100)+1;】 · 【注意:生成0-9的随机数:r.nextInt(10);】 数组(数组长度一旦确定不可改变!) · 一维数组: · 格式(推荐):数据类型[] 数组名; int[] arr; · 格式2:数据类型 数组名[]; int arr[]; · 初始化数组: · 动态初始化:只给出长度,系统给出初始化值。
数据类型[] 数组名=new 数据类型[数组长度];
对于长度很长的数组定义之后赋值用! · 静态初始化:给出初始化值,系统决定长度。
数据类型[] 数组名=new 数据类型[]{元素1,元素2...}
数据类型[] 数组名={元素1,元素2...} · 数组中的元素值:数组名[索引]。索引从0开始。 · 每一个对象都有默认值 · byte,short,int,long 0 · float,double 0.0 · char ‘\u0000’ ‘’ · boolean false · 引用类型 null · 栈:存储局部变量 · 堆:存储的是new出来的对象 · 数组存储的是一个地址值,不同名字的数组可能指向同一个内存地址。 · 【数组1 = 数组2; 是地址值的相等。】 · 遍历数组元素:for(int x=0;x<数组名.length;x++){数组};//注意长度减1。 · 获取最值:
int[] arr={11,33,77,22};
int min =arr[0];
for (int j = 0; j < arr.length; j++) {
if (min>arr[j]) { min=arr[j];}
} day05 方法概述 · 定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ 方法体; return 返回值;} · 格式解释:
A 修饰符:目前记住public static
B 返回值类型:用于限定返回值的数据类型
C 方法名
D 参数类型:用于限定调用方法时传入的数据类型
E 参数名:用于接收调用方法时传入的数据的变量
F 方法体
G return 结束方法,并且把返回值带给调用者 · 两个明确 · 返回值类型 明确功能结果的返回值类型 · 参数列表 明确有几个参数,以及参数的数据类型 day06 · 断点调试 · 作用 · 查看程序的执行流程 · 调试程序 · 添加断点方法:在代码区域的左边双击即可 · 运行加断点的程序:代码区域--右键--Debug As--Java Application · F6 继续单步运行 · 看哪些区域 · 代码区域:看程序执行流程 · Debug区域:看程序的执行流程 · variable:变量的变化 · Console:看程序的输入和输出 · 关闭断点调试 · 按红色的停止按钮,再按右上角的"java"返回原来的界面 · 如何去掉断点 · 把加断点的操作执行一遍 · 在Debag视图中,找到Breakpoint,选中要删除的断点,单击双×即可 · 断点必须加在有效的语句上
|