8.1日
1.for循环
(1)格式 : for(初始化语句;条件表达式;控制体语句){
循环体语句;
}
(2)明确了循环次数,开发应用极为频繁;
(3)for循环节省内存资源 : 当循环结束,里面的变量被释放.
2.while循环
(1)格式 : while(条件表达式){
循环体语句;
控制体语句;
}
(2)不明确循环次数
(3)相对for循环,比较消耗内存,当while循环结束,依然能够访问变量
3.switch选择语句
(1)格式:switch(表达式){
case_*_:
(语句1);
break;
case_*__:
(语句2);
break;
......
default :
(语句n);
break;
}
(2)表达式可以跟基本数据类型 byte,short ,int ,char
jdk5以后,可以枚举类型
jdk7以后,可以String类型
(3)注意事项:
1)switch中的case语句只能是常量
2)switch语句cae语句中没有携带break,造成case穿透(灵活运用它解决一些问题)
3)switch语句的结束条件: a)遇见break结束 b)程序默认执行到末尾
4)default语句可以在switch语句任何位置,不影响执行流程 依然当case语句没有匹配的结果,执行default default语句末尾,break可以省略的,(前期不建议省略) 如果在语句中,break不能省略的,否则case穿透
8.2日
1.Math的随机数使用
jdk提供了类:java.lang.Math , java.lang包下的类不需要导包
针对数学运算的工具类,提供了很多的方法; 获取伪随机数,取值范围:[0.0 , 1.0) public static double random():
快速使用: * Math.random()---获取一个随机数
*猜数字游戏
2.死循环的两种格式
(1) for(;;){
循环体语句;
}
(2)while(true){
//使用比较多
循环体语句;
}
3. 断点调试程序
在方法中的有效代码第一行打断点,在行号上直接单击即可
使用debug启动Java应用程序 右键---选择 debug run xxx类名.main :debug启动这个类的main方法
4.for循环嵌套
for(初始化语句1;条件表达式1;控制体语句1){
for(初始化语句2;条件表达式2;控制体语句2){
循环体语句;
,,, }
}
5.有具体返回值的方法(方法:给某段代码,使用{}包裹起来,给这个{}起一个名字,方法名,就可以有相同业务逻 辑代码,直接使用方法名调用,提高代码的复用性;)
public static 返回值类型 方法名(形式参数类型1 参数名1,形式参数类型2 参 数名2,....){
业务逻辑 ...
return 具体结果;
}
有具体返回值类型的方法的调用格式
在main方中 赋值调用 接收的结果类型 变量名 = 方法名(实际参数1,实际参数2,...) ; 实际参数:直接赋值或者main中键盘录入
8.3日
1. break,continue与return
break:结束中断,结束循环语句也可以结束switch语句,应用范围比continue大
continue:仅仅在循环中使用,表示"结束当期循环,立即进入下一次循环"
return:结束方法;在方法中使用时返回结果
2.do-while循环和其他循环语句的区别
初始化语句;
do{ 循环体语句; 控制体语句; }
while(条件表达式) ;
区别于其他循环: 当条件不成立的时候,循环体语句至少执行一次; 开发中使用的比较少
3.一维数组
数组定义格式:
动态初始化 : 数据类型[] 数组名称 = new 数据类型[数组长度] ;
数据类型 数组名称[] = new 数据类型[数组长度] ;
静态初始化 : 数据类型[] 数组对象名 = new 数据类型[]{元素1,元素2,元素3.....} ;
数据类型 数组对象名[] = new 数据类型[]{元素1,元素2,元素3.....} ;
(1)所有的数组有一个特点:数组名称[角标或者索引值]:访问数组的元素 ,角标值/索引值从 0开始计算
(2)数组名称.length:获取数组长度 * 数组中的最大索引值: 数组名称.length-1
4.没有具体返回值的方法
public static void 方法名(形式参数类型1 参数名称1,形式参数类型2 参数 名2,....){
* * * *
}
调用格式 : 单独调用
5.方法重载overload
为了某个功能扩展性,多个方法方法名可以相同(完全相同),参数列表不同,与返回值无关
参数列表不同:
1)参数个数不同
2)参数类型不同
3)考虑参数类型的顺序
6.JVM 内存分配
栈内存:存储局部变量用的这个内存区域
堆内存:new出来的对象存储这个区域
方法区: 字节码文件区域----方法调用过程需要加载类 里面存储很多的方法,这些方法被调用,加载进栈内存 static区域 : main方法就是被static修饰的
常量池 : 常量的都是在常量池
7.遍历数组
int[] array = new int[3] ; 这句话完了哪些事情?
1)需要在栈内存中开辟空间, int[] array这个变量
2)new int[3] ; 需要在堆内存中申请空间
3)为这个堆内存中的这些数组的元素,进行系统默认初始化,int类型的元素在数组中默认值0
4)系统初始化完毕,为堆内存空间产生一个空间地址值
5)将堆内存空间地址值赋值给栈内存的变量array 6)栈内存变量 array指向堆内存地址;
8.4日
1.面向对象思想特点
1)更符号生活中的思想行为习惯
2)让复杂的事情简单化
3)从执行者变成了指挥者
2.面向对象的三大特征: 封装 继承 多态
3.数组的逆序
4.冒泡排序的思想以及代码体现
冒泡排序思想 : 两两比较,较大的值往后方法,第一次比较完毕,最大值出现在最大索引处
8.5日
1.基本类型作为形式参数和引用类型 (数组,类,接口) 作为形式参数的特点?
(重点) 实际需求业务中,数组这种在后期用的不是很多,用的"集合" List,Set,Map(高级集合特 性),支持长度可变的需求;
基本类型作为形式参数,形式参数改变不影响实际参数;
引用类型作为形式参数,形式参数的改变直接影响实际参数;
2.类
描述现实世界事物的一组属性和行为,代码体现出来对某个事物的描述以及在对应的主方法中测试;(昨天的题) 1)手机有品牌(brand),价格,颜色,内存等属性, 手机可以打电话,发短信,打游戏等行为, 请使用面向对象的方式描述手机并且进行定义一个PhoneTest类,在主方法中测 试手机类 2)学生有姓名,年龄,性别属性 学生主要行为就是学习,还可以玩游戏, 请使用面向对象的方式描述学生类并且定义一个StudentTest类,在主方法中测 试学生类
3. 封装(这块关键字 权限修饰符--- >private)
如果学生的年龄,手机价格,,赋值的时候可以随便赋值,可能出现非法数据"负数" 以后:描述事务的时候,需要定义类,类中的所有的成员变量(现实世界事物的属性) ,必须都是私有化private;
封装 : 就是将显示世界事物的属性隐藏了(加入一个关键字private), 私有的,无法直接访问的,对外数据的安全性!(外界不能访问的)
对外提供一个方法,公共的(public)访问方法(setXXX()/getXXX())
注意事项:
以后在书写的代码的时候,写一个类,描述真是存在事物的属性的时候, 需要属性(英文单词字母全部小写)全部加入private
面试题:private关键字的特点? * private关键字的特点?*
1)被private修饰的成员变量以及成员 方法只能在本类中访问
2)可以修饰成员变量也可以成员方法,就是为了外界不能直接访问
3)被private修饰的成员变量/成员方法可以间接的通过 通过的方法访问;
学习心得:
1.敲代码速度太慢,会是感觉会,不能很快的应用到问题里,缺少积累和训练,需增加代码量。
2.自己日常学习效率太低,花费时间多,高耗低效!!!需在接下来的时间里明确学习目标,更加专注.
3.日常有些散慢了,可能跟习惯有关。学习状态需调整,需进入一个紧张的学习状态和氛围,后续难度较大,内容较多,节奏更快.
4.基础能力不够,理解能力有点差,要经过多遍反复复习,加深理解。
已经两周结束了,感觉还是没达到自己的要求,继续加油吧!