Java小结02

Java 中数组的声明方式

int r[] = new int [3];
int[] a = new int[5];

声明时,[] 和变量名 可以不分先后

int[] b = new int[] {1,2,3};

如果 后面有添加元素 int[] 里面的个数不能 设置 否则报错

int[] c = {1,2,3};   
// 直接添加元素,前面的 new int[] 可以省略

数组创建时,必须显示指定长度,并在创建之后不可更改长度

数组的扩容
创建一个新的数组 将旧的数组添加到里面

// 数组的复制,从 那个数组复制 那个位置开始 复制到哪个数组 从哪个位置开始添加  复制多少个
System.arraycopy(nums, 0, numbers, 0, nums.length);

数组复制的方式

1,我们自己手写循环实现,定义一个原数组,定义新数组
2.System.arraycopy(nums, 0, numbers, 0, nums.length);
3.int[] numbers =  Arrays.copyOf(nums,4);// 拷贝的个数,如果没有就用 0 或者null

值传递和引用传递
值传递 基本数据类型 传递的是值得副本 不会对原来的值发生改变
引用传递 引用数据类型 传递的是地址 会对原来的值发生改变
String 是一个特殊的引用数据类型 不会发生改变

参考下面的链接
https://blog.csdn.net/bntx2jsqfehy7/article/details/83508006这一次,让你彻底明白Java的值传递和引用传递!

全局变量=成员变量=实例变量
局部变量 方法内部定义的
全局变量直接写在类中
局部变量写在方法中

使用范围不同
1全部变量直接写在类中
2.局部变量值在方法内部可以访问

默认值不一样
1.全局变量有默认值
2.局部没有默认值,必须先复制

内存位置不一样
1.全局变量 存在 堆
2.局部变量 存在 栈

生命周期
1.全局变量 是随着对象的创建 而诞生,随着对象呗垃圾回收而死亡
2局部变量 是随着方法进栈而诞生,随着方法出栈而死亡

重载
1.同一个类中
2.方法名称相同
3.参数列表不同,参数的个数 类型 顺序 这三者有一种不同即可
4.跟返回值无关

方法之间可以互相调用,不需要创建对象,直接调用即可
当我们在方法重载的情况下调用,只会根据我们传入的类型,个数,以及顺序来找到对应的那一个方法

当我们编写构造器方法以后,使用成员变量名称一致

构造器方法重载
1同一个类中
2.参数列表不同,个数 类型 顺序

Java多线程是指在一个Java程序中同时执行多个线程,每个线程都是独立的执行流。Java中创建线程的方式有三种:继承Thread类、实现Runnable接口和实现Callable接口。每种方式都有其优缺点。 1. 继承Thread类创建线程类: ```java class MyThread extends Thread { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 MyThread thread = new MyThread(); thread.start(); ``` 优点:简单易用,可以直接重写Thread类的run()方法。 缺点:由于Java不支持多继承,继承了Thread类就无法再继承其他类。 2. 实现Runnable接口创建线程类: ```java class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } // 创建线程对象并启动线程 Thread thread = new Thread(new MyRunnable()); thread.start(); ``` 优点:避免了单继承的限制,可以继续继承其他类或实现其他接口。 缺点:需要额外创建Thread对象,并将Runnable对象作为参数传递给Thread对象。 3. 实现Callable接口创建线程类: ```java class MyCallable implements Callable<Integer> { public Integer call() throws Exception { // 线程执行的代码 return 0; } } // 创建线程池对象 ExecutorService executor = Executors.newFixedThreadPool(1); // 提交Callable任务并获取Future对象 Future<Integer> future = executor.submit(new MyCallable()); // 获取线程执行结果 int result = future.get(); ``` 优点:可以获取线程执行的结果,并且可以抛出异常。 缺点:相对于前两种方式,使用Callable需要更多的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值