加入小组初体验
这一周是加入小组的第一周,从开始学习如何安装JDK,到逐渐熟悉java语言的基本架构,逐渐开始适应小组的时间安排,每天的生活也是非常的充实,如果没有加入小组,或许自己每天还是上网课,打游戏,睡觉,慢慢的去消耗自己的时间,一无所获。
学习java后的感受
在学习java语言第一天时,我看到java的各种形式,比如说java语言的输入语句,java语言的输出语句,这不像C语言中 scanf、printf来的更直接,输入语句更是需要导包---->创建对象---->接收数据。在java语言学习的过程中,发现语言的相同点,例如:基本的数据类型(名字大多相同,但是有一些细节问题不一样),三种循环语句的用法和区别。当然,也有许多的相似点,就比如:java的方法与C语言中的函数相似。在这周的学习中,我觉得java语言有几个优势:
- 在某些代码的编译过程中java相比于C语言更加的直观简单。
- java语言中处理问题的一些思想可以借鉴,作为我们学习其他语言的良师。
- java语言没有指针,(引用和指针形相似),这在很大程度上降低了java的难度,使得我们更加容易学习。
- java在输出语句中直接写变量名,或者用双引号把引用内容引用起来,同时java输出语句中能使用"+"进行连接。
例如:
System.out.println("学习java第"+day+"周");
本周疑难问题总结
1.猜数字游戏
代码演示:
//1.生成一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100) + 1;// 0 ~ 99 + 1 --- 1 ~ 100
System.out.println(number);
//2.使用键盘录入去猜出这个数字是多少?
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入一个整数");
int guessNumber = sc.nextInt();
//3.比较
if(guessNumber > number){
System.out.println("您猜的数字大了");
}else if(guessNumber < number){
System.out.println("您猜的数字小了");
}else{
System.out.println("恭喜你,猜中了");
break;//结束循环,注意与continue的区别
}
}
特别注意:
随机数生成范围的确定
将键盘录入写进循环体实现多次输入
不要将生成随机数的代码写进循环(中奖)
可以设定在多少次之后必猜中,无论是否猜对(抽水晶)
2.方法的重载
- 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。
- 每一个方法具有不同的类型参数或者参数个数,这些同名的方法,就构成了重载关系
- 简单记忆:同一类中,方法名相同,参数不同的方法。与返回值无关,与类型无关
(同名同类不同参)
- 参数不同的情况:
个数不同,类型不同,或顺序不同。
代码演示:
import java.util.Scanner;
//方法同类
public class Demo2 {
public static void main(String[] args){
byte x=1;
byte y=1;
compare((long) 12,(long) 45);//强制转换
compare(12,45);
compare(x,y);
}
//方法同名,参数不同
public static void compare(byte b1,byte b2) {
System.out.println(b1==b2);
}
public static void compare(double b1,double b2) {
System.out.println(b1==b2);
}
public static void compare(long l1,long l2) {
System.out.println(l1==l2);
}
public static void compare(int i1,int i2) {
System.out.println(i1==i2);
}
}
3.数组的拷贝
原始数组 Arr[];
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
拷贝数组 newArr[];
2 | 3 | 4 | 5 | ||
---|---|---|---|---|---|
0 | 1 | 2 | 3 |
从原始数组索引1开始到索引4之前结束
public static int arr[] copyOfRange(int []arr,int from 1,int to 5){}
(to不在拷贝范围之内)
public class Demo2{
public static void main{
//定义原始数组
int arr[]={1,2,3,4,5};
//调用方法拷贝数据
int copyArr[]=copyOfRange([]arr,from 1,to 5);
//遍历新数组
for(int i=0;i<copyArr.length;i++){
System.out.println(copyArr[i]+" ");
}
}
public static int[] copyOfRange(int []arr,int from,int to){
int []newArr=new int[to-from];
//构建索引
int index=0;
for(int i=from;i<to;i++){
[index]newArr=arr[i];
index++;
}
//把数组返回
return newArr;
}
}
4.知识分享
-
在定义long和float两种类型的变量时末尾需要加上首字母。
例如:
float a=2.3F;
long b=12334232L;
- 短路。在使用逻辑运算符时,如果能判断整体的真假,后续条件不在执行。
例如:
if(13>14&&--b=23);
因为13>14不成立,整体表现为假,故后边不执行。
-
数组的静态初始化与动态初始化
静态初始化:int[] arr = {1,2,3,4,5}; 知道需要操作的数据
动态初始化:int[] arr = new int[3]; 知道元素个数不知道数据
数组的索引:最小索引0,最大索引:数组名.length-1;
-
循环
无限循环常用while。
break语句表示整个循环结束,continue跳过本次循环,继续执行下次循环。
-
方法
方法不能嵌套
void 表示无返回值,可以省略return,可单独写return,后面不能加数据。
格式:
public static 返回值类型 方法名(参数){ 方法体; return 数据; }
下周学习计划
- 类与对象
- 继承,抽象类,接口
- Arraylist学习
- 复习第一周重难点
- 一篇分享博客,一篇周记,做好笔记
希望自己能合理利用时间,这周时间分配上不合理,没有制衡好学科之间的时间分配,下周要制定好时间表,争取把自己的学习效率提上去。最后,想对自己说,如果有一天你想放弃了,你就好好想想你为什么加入小组,想想你所想要的未来是什么样子的,不要为自己找冠冕堂皇的理由糊弄自己!希望能和未来的小伙伴们都坚持下去,最终都成为自己想要成为的人!