Day01
(1)常用的dos命令:d: dir cd 目录 cd.. cd/
注意事项: ①dir之后 你会发现两个目录:
. 当前路径
.. 上一级路径
②cd 如果要进入比较深的目录:
把目录复制粘贴;
鼠标拖拽;
在那个目录的空白处按住shift+右键 “在此处打开cm窗口”。
(2)jdk、jre、jvm:JRE:JVM+类库;JDK:JRE+JAVA的开发工具。
(3)HelloWorld的编写:
编写HelloWorld的程序
编译程序 javac.exe
运行程序 java.exe
(4)环境变量
(5)Java的语法
注释:
单行注释: //danhangzhushi
多行注释: /* duohang */
文档注释: /** wendangzhushi*/
关键字:
java里面被赋予特殊含义的单词。
(Class、public、void 、static)
标识符:
标识符:起名字 / 除了关键字的单词 全部都是标识符;
标识符可以自己定义
定义规则:
组成 数字 字母 _ $
注意:
不能以数字开头
不能是关键字
约定俗成的习惯:
类名,接口名: 首字母大写,如果包含多个单词的,后续的单词每个首字母都大写
HelloWorld Student StudentTest
方法名,变量名:首字母小写,如果包含多个单词的,后续的单词每个首字母都大写
get getSum price applePrice
常量名: 所有字母都大写,如果包含多个单词的,单词之间用_隔开
JAVA_HOME
常量和变量:
常量:运行过程中 其值不会发生改变的量就是常量
变量:运行过程中 值可以发生改变的量
定义格式: 数据类型 变量名 = 初始化值;
注意事项:
1:局部变量使用之前必须先赋值;
2:变量作用范围 只在当前{}
3: 在同一个范围内 不能重复定义相同名字的变量
4:int a,b; a=10;b=10; int c=10,d=10;
数据类型
基本类型
整型
Byte(1字节) 、short(2字节)、Int(4字节、Long(8字节)
整型 默认类型是int
浮点型
Float(4字节)、double(8字节)
浮点型 默认类型是double
字符型
Char(2字节)
布尔型
Boolean(1字节)Java的官方文档给出了明确的说法: boolean类型的大小 没有定义
引用类型:类、接口、数组、枚举
数据的类型转换:隐式转换和强制转换
Day02
运算符
算数运算符
表达式:用符号连接的式子(不能自成语句),除了复制运算符;
+ - * /
注意:/ 整数相除 得整数 要想结果得到小数 必须有小数参加运算符
% : 取余数
字符和字符串参加运算符:
+:字符串连接符 (紧挨着字符串的那两个+号是字符串连接符)
字符和int值相加:
字符会变成值 再去加。 为什么字符会变成值呢?
涉及到了编码表。 因为计算机只能存储数,怎么存储 字符呢? 由编码表对应去存。
++ --
int a = 10;
// 当 ++ 放在变量的后面 ,a自己+1 ,a++整体不便
//int b = a++;
// 当++ 放在变量的前面, a自己+1, ++a整体+1
int b = ++a;
System.out.println(a); //11
System.out.println(b); //
赋值运算符
int a = 10;
+= -= *=
byte a =10;
short s = 11;
s+=a; // s= (short)(s+a);
关系运算符
== != > <
有关系运算符计算出来的结果 都是boolean类型的
System.out.pritln(a=b); 打印的b的值
逻辑运算符:
& : 和 真和假 有假则假
| : 或 真或假 有真则真
^ : 异(是否不同) 是不同 真, 是相同 假,
! : 非 取反 非真则假 非假则真
参与逻辑运算符的量 都必须是 Boolean类型的, 结果也都是Boolean类型的
&&:和&执行结果一样, && 效率高。 true && false ,当左侧是false的时候 右边不再看
三元运算符:
int a = 10;
int b = 11;
// 11 11
boolean c = (b-- == ++a)? true : false; //true
Day03
选择结构语句
if:
if的第一种格式
if(关系表达式){
语句体;
}
if的第二种格式
if(关系表达式){
语句体一;
}else{
语句体二;
}
if的第三种格式
if(关系表达式1){
语句体一;
}else if(关系表达式2){
语句体二;
}else if(关系表达式3){
语句体3;
}else{
语句体n;
}
注意:如果if的第三种格式里面所有的条件表达式都满足, 从上往下,只执行第一个。
if的嵌套:
switch:
switch(表达式){ // byte short int char jdk1.5之后枚举 jdk1.7版本String
case 值1:
语句;
break;
case 值2:
语句;
break;
case 值3:
语句;
break;
default:
语句;
break;
}
循环结构语句:
for循环:
for(初始化语句;判断条件语句;控制条件语句){
循环体;
}
执行顺序:
for(A;B;C){
D;
}
A BDC BDC BDC BDC ... 直到B为false,则结束循环;
利用循环内数字变化的思想:
for循环可以和if嵌套
while循环
初始化语句;
while(循环判断条件){
循环体;
控制条件语句;
}
do while循环:
初始化语句;
do{
循环体;
控制条件语句;
}while(循环条件);
三种循环的区别:
dowhile 和 for 和while的区别:
dowhile,先执行后判断的,所以肯定会执行一次循环体。
for和while 第一次判断是false话 不会再执行循环体
for和while有什么区别:
for循环的初始化变量一般都定义在for循环的里面。所以for循环结束之后 变量释放了 就不能再用了
while循环的初始化变量都是定义在while循环的外面,所以while循环结束后 还是能继续使用。
死循环
控制循环的语句break和continue:
break:的作用就是强制中断循环。
注意事项:break只能写在循环中和switch结构中。
continue:终止本次循环,继续下次循环。
Day04
switch的注意事项:
1:default无论放在switch的任何的位置, 都是先去看case 最后才去看default
2:如果执行了一个case之后,里面没有遇到break, 直接case穿透(直接执行下一个case里面的内容,直到遇到break为止,或者到最后一个}
Random 随机数
导包:import java.util.Random;
创建对象: Random r = new Random();
获取随机数: int a = r.nextInt(10);
int a1 = r.nextInt(100)+1;
int a2 = r.nextInt(41)+40;// 40-80的随机数
数组
数据类型:
基本类型
整数型:byte、short、int、long
浮点型: float、double
布尔型: boolean
字符型:char
引用类型:类、接口、枚举、数组
数组的定义:
三个容器:
变量 只能存一个
数组是一个容器,存很多,但是固定长度
集合是一个容器,存很多,长度不固定。
初始化:
动态初始化:
初始化:
整型的: 0
浮点型:0.0
布尔型:false
字符型:空字符 '\u0000'
静态初始化:
boolean[] arr1 = {true,true,true};
boolean[] arr2 = new boolean[]{true,true,true};
二维数组:
int[][] arr1 = new int[3][4];
Day05
方法(函数):
方法的定义格式
修饰符 返回值类型 方法名 (参数类型 参数名, 参数类型 参数名2,....){
方法体;
return 返回值;
}
注意事项:
方法绝对不能嵌套;
方法不调用就不会执行。
方法作用是为了提高程序的复用性
方法的调用:
有返回值的方法,可以输出调用,也可以赋值调用, 虽然可以单独调用,但是单独调用没有意义。
方法调用的图解
void方法的使用:
当一个方法执行之后,不需要让这个方法返回一个值。 这时候 就需要让方法的返回值类型 写void
注意:void的方法 里面也可以有return 但是不能在return后写值。
void的方法 只能单独调用,不能赋值调用 也不能输出调用
方法的重载
当一个类中, 出现方法名相同,参数列表不同,返回值无关,我们称这两个方法之间相互重载。
方法名必须相同
参数列表必须不同
返回值无关
方法重载的用途(了解):
System.out.println(); // println()就是方法的重载;
基本类型的参数传递
形式参数的改变不影响实际参数; 原因是因为 基本类型的数是存在栈内存中。
内存:
栈: 执行方法用的
堆: 存储一些引用型数据的 数组
方法区:存储一些class文件的
本地方法区: 存储一些本地方法的
寄存器:cpu
引用类型的参数传递
形式参数的改变会影响实际参数, 原因是因为,引用类型的数据存在堆内存中,可以有很多个引用执行的,很多个引用共享他。
|
|