【通俗易懂学JAVA】——public void与public static void的区别

public void与public static void的区别

●区别:
这两句的区别就在于,能不能直接用类名访问。
在这里插入图片描述
接下来实例化一个对象ca,你会发现它不仅可以访问普通的方法,也可以访问静态的方法
在这里插入图片描述
如果每次我用一个类的方法之前我都要实例化一下这个类,那么无疑是对内存资源的浪费。于是静态方法就带来了便利,如下图所示:
在这里插入图片描述
【总结】public static void为静态方法,用一个类的方法之前不需要实例化这个类【所谓静态类,就是一开始就有的,类定义完后就存在。也就是说,只要加载了某个类,他的静态方法就产生了。不需要实例化,就可以直接用类名.方法名来调用。】
1.public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;void是表示要定义的这个方法没有返回值。
2.public static void 修饰是静态方法属于类使用【类名.方法名】直接调用public static是不完整的修饰符,后面要加上void,String,int等类型,表示方法是静态方法。
非静态方法之间可以互相调用,非静态方法也可以调用静态方法;但是静态方法不可以直接调用(未初始化的)非静态方法由于 public static void main 作静态方法,所以遵循这个原则。
但是 Java 可以通过对象名调用静态方法(对象名.静态方法)。Java 中不会导致语法错误(syntax error),但是不推荐这样使用,静态方法与非静态方法调用时应当绝对区分;【而且其他 OOP 语言如 C#,Swift,Objective-C 都没有这样的语法。】

### Java 线程基础教程 #### 1. 理解线程的概念 在计算机科中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,多个线程可以在同一时间内并发执行[^2]。 #### 2. 创建线程的方法 Java 提供了两种创建线程的方式:继承 `Thread` 类和实现 `Runnable` 接口。这两种方式都允许开发者定义线程的行为逻辑,并启动新的线程来执行特定的任务。 - **通过继承 Thread 类** ```java class MyThread extends Thread { public void run() { System.out.println("这是一个新线程"); } } public class Main { public static void main(String[] args) { new MyThread().start(); } } ``` - **通过实现 Runnable 接口** ```java class MyRunnable implements Runnable { @Override public void run() { System.out.println("这是另一个新线程"); } } public class Main { public static void main(String[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); } } ``` #### 3. 同步机制的重要性 当多个线程访问共享资源时可能会发生数据竞争条件,因此需要同步机制来确保线程安全。可以使用关键字 `synchronized` 来声明方法或代码块为同步区域,在任何时刻只允许一个线程进入该区域操作共享变量。 ```java public synchronized void incrementCounter(){ counter++; } ``` #### 4. 使用现代工具简化编程模型 除了传统的线程管理外,还可以利用更高层次抽象如 ExecutorService 和 ForkJoinPool 这样的库函数来进行更高效的异步任务处理。 ```java import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; ExecutorService executor = Executors.newFixedThreadPool(5); for (int i=0; i<10 ;i++){ executor.submit(() ->{ try { // 执行某些耗时的操作... } catch(Exception e){ e.printStackTrace(); } }); } executor.shutdown(); ``` 以上介绍了有关于 Java 多线程的一些基础知识以及如何简单地应用这些概念编写多线程程序。对于初者来说,掌握好上述内容已经足以应对大多数日常开发需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值