java学习打卡(23.3.21)(自用)

书籍:《Java核心技术卷I 基础知识》

内容:第三章3.8-3.9  第四章4.1-4.2

主要内容:选择,循环,数组,BIGINTEGER 大数值

笔记: 第三章部分:

import java.io.*; // 使用Console类
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.nio.file.*; //使用Paths
import java.util.*; // Scanner类

import static java.lang.Math.*;

public class Arknights {
    public static void main(String[] args) {

        System.out.println(114514);
        //if-else 语句和while,for循环略

        //带标签的break
        Scanner in = new Scanner(System.in);

        //演示
        {
            int n;
            int i = 0;
            read_data:
            //标签
            while (i < 10) {
                for (int j = 1; j <= 10; j++) {
                    System.out.println("Enter a number >= 0 :");
                    n = in.nextInt();
                    if (n < 0)
                        break read_data;
                    i += 2;
                }
            }
        }
        //事实上,标签可以应用到任何语句,甚至是if语句或者块语句中


        //BIGINTEGER 大数值
        BigInteger b = BigInteger.valueOf(114514);
        BigInteger a = BigInteger.valueOf(100); // 使用valueOf将普通数值转化为大数值
        //运算
        BigInteger c = a.add(b);
        BigInteger d = c.multiply(b.add(BigInteger.valueOf(1919810)));
        System.out.println("a = " + a + ", b = " + b + ", c = " + c + ", d = " + d);

        //数组
        int[] q;//声明数组
        int[] w = new int[10]; //创建数组
        int num = 114;
        int e[] = new int[num]; //C风格的数组声明,数组的长度可以为int变量
        for (int i = 0; i < w.length; i++) {
            w[i] = i;
        }
        int[] ssmall = {1, 2, 5, 6, 8, 8};
        int[] small;
        small = new int[]{10, 45, 7, 96, 21}; // 初始化匿名数组
        //java中允许数组长度为0
        //数组拷贝,两个变量将引用同一个数组
        int[] A = small;
        System.out.println(A[2]);
        System.out.println();
        //如果拷贝所有值
        int[] copySmall = Arrays.copyOf(small, 2 * small.length);//第二个参数为数组长度

        //数组排序
        Arrays.sort(small);
        for (int i : small) {
            System.out.println(i);
        }
        System.out.println();

        //随机数
        {
            int n = 7, k = 2;
            int[] numbers = new int[n];
            for (int i = 0; i < numbers.length; i++) {
                numbers[i] = i + 1;
            }
            int[] result = new int[k];

            for (int i = 0; i < result.length; i++) {
                int r = (int) (random() * n);
                result[i] = numbers[r];
                numbers[r] = numbers[n - 1];//用最后一个数填充随机位
                n--;
            }
            System.out.println("Random int:");
            //for each 循环
            for (int r : result) {
                System.out.println(r);
            }
            System.out.println();

            // static int binarySearch (type[] a,int start, int end,type v)  采用二分查找查找值v,查找成功返回下标值,否则返回负数值r,其-r-1是为保持a有序v应插入的位置 ,查找范围:[start , end)  ,start 和 end 可省略。
            //java的二维数组实际上是数组的数组,可以交换两行内容
        }

        {
            //不规则数组

            final int NMAX = 10;
            int[][] odd = new int[NMAX + 1][];
            for (int i = 0; i <= NMAX; i++) {
                odd[i] = new int[i + 1];
            }

            for (int i = 0; i < odd.length; i++) {
                for (int j = 0; j < odd[i].length; j++) {
                    int lo = 1;
                    for (int k = 1; k <= j; k++) {
                        lo = lo * (i - k + 1) / k;
                    }
                    odd[i][j] = lo;
                }
            }
            for (int[] row : odd) {
                for (int od : row) {
                    System.out.printf("%4d", od);
                }
                System.out.println();
            }
        }
    }
}

第四章部分:

import java.io.*; // 使用Console类
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.nio.file.*; //使用Paths
import java.time.LocalDate;
import java.util.*; // Scanner类

import static java.lang.Math.*;

public class C4 {
    public static void main(String[] args) {


        //Date类
        new Date();//构造器名字与类名相同,在构造器前加new字符.初始化了一个新对象,此对象被胡世华为当前日期时间
        System.out.println(new Date());//将此对象传递给一个方法
        String s = new Date().toString();//toString 方法,返回字符串描述
        Date birthday = new Date();//为了构造的对象能多次使用,存放在一个变量内
        System.out.println(s);
        /*
         * 对象变量不是对象,也没有引用变量,不能将任何类的方法应用于其上
         * 一定要认识到:一个对象变量并没有实际包含一个对象,而仅仅引用一个对象.
         *  */
        //Eg .
        Date deadline = new Date(); //表达式  new Date() 构造了一个Date类型的对象,并且它的值是对新创建对象的引用.这个引用存储在变量 deadline中。

        //LocalDate类
        LocalDate.now();//使用静态工厂方法代表调用构造器.
        LocalDate newYearEve = LocalDate.of(1999, 12, 31);
        int y = newYearEve.getYear();
        int m = newYearEve.getMonthValue();
        int d = newYearEve.getDayOfMonth();
        System.out.println("NewYearEve:" + y + "." + m + "." + d);
        LocalDate _1000D_later = newYearEve.plusDays(1000);
        y = _1000D_later.getYear();
        m = _1000D_later.getMonthValue();
        d = _1000D_later.getDayOfMonth();
        System.out.println("_1000D_later:" + y + "." + m + "." + d);

    }
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值