Java
Java中变量的使用
变量、数组、集合 存在内容中,容易丢失
文件,数据库 存在硬盘就不会消失
操作:
三大结构:面向对象
JVM(Java虚拟机):人机交换的中转站
注释:“//” : 单行注释
“/*” : 区域注释
“/**” : 文档注释
Java中基本数据类型:整型:byte int long short
浮点型:float double
字符型:char(使用单引号[’]包含的字符)
布尔型:boolean(true false)
选择结构:if if…else switch-case
循环结构:while do…while for
break语句
除了可以用于switch语句中,还可以用于循环体中
在循环体中遇见break语句时,立即结束循环,跳至循环外,执行循环结构后面的语句
continue语句
用于结束本次循环,即在循环体中遇见continue语句,循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定
数组:数组就是一组数,用来保存数据
一维数组:类型[] 数组名 = new 类型[常量表达式]
- 数组名的命名规则与变量名的命名规则相同
2.“[ ]”是数组的标志,不能用圆括号或其他符号代替
3.在Java语言中,不能在声明数组时指定数组的长度,而应该在定义时指定,例如:
int x[5]; //编译时将出错
int []x=new int[5]; //正确
排序:有选择排序和冒泡排序
选择排序算法
选择排序的思路是(由小到大):在未排序序列中找到最小元素,存放到排序序列的起始位置 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾,重复此操作,直到所有元素排序完毕。
冒泡排序算法
冒泡排序的思路是(由小到大):对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。循环操作此步骤,直到没有数互换。
插入排序算法
插入排序的思路是:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得第n个数也是排好顺序的。如此反复循环,直到全部排好顺序
排序思路如下:
问题:数组长度已经确定,如果插入新数据?
解决: 1. 新建数组长度大于之前数组
2. 将之前数组中的数据复制到新数组
3. 循环比较输入的数与数组中的数据,如果输入的数小于数组元素,则说明找到位置
4. 从尾部循环将每个数据后移一位,移动后指定坐标后,将数据插入保存
学习数组,通过练习数组题发现Java的编写掌握的并不是很熟,看着题目不知如何下手
万年历
-
1900年1月1号是星期一
//2. 判断输入年份和月份的第一天是星期几
int y; //输入的年份
int m; //输入的月份
int days; //天数差
int week; //输入年月对应星期几(17对应周一周日)
int mDay=0; //输入月份对应的天数
System.out.print(“请输入年份(大于1900年):”);
y = input.nextInt();
System.out.print(“请输入月份(1~12):”);
m = input.nextInt();
//1.计算输入的年月距离1900年1月1号有多少天
//1.1 差多少天
days = (y-1900)*365;
for (int i = 1900; i < y; i++) {
if(i%4000 || (i%40 && i%100!=0)){
days++;
}
}
//1.2 如果输入月份>=2,判断输入年份是平年还是闰年
for (int i = 1; i < m; i++) {
switch (i) {
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
days+=31; break;
case 4:case 6:case 9:case 11:
days+=30; break;
case 2:
days+=28;
if(y%4000 || (y%40 && y%100!=0)){
days++;
}
break;
}
}//2. 判断当前输入年月的第一天是星期几 week = days%7+1; //3. 显示结果 //3.1 得到输入月份的天数 switch (m) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: mDay=31; break; case 4:case 6:case 9:case 11: mDay=30; break; case 2: mDay=28; if(y%400==0 || (y%4==0 && y%100!=0)){ mDay++; } break; } //3.2 显示输入年月的日历 System.out.println("日\t一\t二\t三\t四\t五\t六\t"); System.out.println("=================================================="); //3.2.1根据星期几来判断输出个空格 for (int i = 0; i < week; i++) { System.out.print("\t"); } for (int i = 1; i <= mDay; i++) { System.out.print(i+"\t"); if((i+week)%7==0){ System.out.println();}}}}
求日期差
Date date = new Date(118,2,11)
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
System.out.println(sdf.format(date));
DVD管理系统
数据存储:所有的DVD都必须能保存,因为所有的长时间保存的方式还没有学习,所以我们呢使用数组保存数据
数据操作:查看、添加、借出、归还、删除、借出排行榜
对于一个项目来说,不光只有数据的操作,还有界面的操作,而且在数据操作的过程中会发现,很多操作是雷同的,也就是编码相似度50%-90%
一个需求需要有以下四个方面的内容:
数据存储、通用操作、特有操作、界面操作
这些操作结束后就进行编码,编码的原则:先有数据存储,再有数据的操作,按业务流程创建界面功能,时刻保证项目代码是可运行的