12.05—12.11java学习周记

加入小组初体验

这一周是加入小组的第一周,从开始学习如何安装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[];

123456
012345

拷贝数组 newArr[];

2345
0123

从原始数组索引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.3Flong b=12334232L;
  • 短路。在使用逻辑运算符时,如果能判断整体的真假,后续条件不在执行。

​ 例如:

if13>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学习
  • 复习第一周重难点
  • 一篇分享博客,一篇周记,做好笔记

希望自己能合理利用时间,这周时间分配上不合理,没有制衡好学科之间的时间分配,下周要制定好时间表,争取把自己的学习效率提上去。最后,想对自己说,如果有一天你想放弃了,你就好好想想你为什么加入小组,想想你所想要的未来是什么样子的,不要为自己找冠冕堂皇的理由糊弄自己!希望能和未来的小伙伴们都坚持下去,最终都成为自己想要成为的人!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥也不会写呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值