java代码块和具体的代码应用

简介: java代码块和具体的代码应用

代码块分类:

(1)局部代码块
(2)构造代码块
(3)静态代码块
(4)同步代码块

1.局部代码块
局部代码块主要用来控制变量的生命周期。
复制代码
1 public class MyTest1 {
2 public static void main(String[] args){
3 {
4 int a = 1;
5 System.out.println(a);
6 }
7 System.out.println(a); // 报错
//代码效果参考:http://0791zd.com/bx/art_503.html

3-6行就是局部代码块,int a只在这个代码块里面有效。
2.构造代码块
构造代码块的作用是在创建对象时,需要实现其它附加东西时,需要用到的。
(1)无构造代码块时的书写:
public class MyTestDemo {
public static void main(String[] args){
MyTest1 m1 = new MyTest1();
MyTest1 m2 = new MyTest1("小明",18);
}
}
class MyTest1 {
String name;
int age;
public MyTest1() {
System.out.println("我是附加的功能");
public MyTest1(String name, int age) {
this.name = name;
this.age = age;
这两个构造方法明显有重复的部分,使用构造代码块就可以把重复的部分抽取出来。
(2)有构造代码块时的书写
{
public MyTest1() {}
注意:构造代码块优先于构造方法里面的代码执行!
3.静态代码块
随着类的加载而加载,只加载一次。一般应用于:加载类时需要做的一些初始化,比如加载驱动。
static {
System.out.println("加载驱动");
4.同步代码块
保证在多线程的情况下,先执行完一个方法的完整代码,才会切换线程。
public class Demo4 {
public static void main(String[] args) {
Demo d = new Demo();
new Thread() {
@Override
public void run(){
while (true){
d.print1();
}
}
}.start();
d.print2();
class Demo{
Object o = new Object();
public void print1(){
synchronized (o){ // synchronized ()传入一个对象即可,相当于一把锁
System.out.print("我");
System.out.print("好");
System.out.print("饿");
System.out.print("啊");
System.out.print("\n");
}
public void print2(){
synchronized (o){ // synchronized () 传入的对象要和上面的一样
System.out.print("想");
System.out.print("吃");
System.out.print("汉");
System.out.print("堡");
System.out.print("包");

相关文章
|
18天前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
284 4
|
28天前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
212 115
|
28天前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
153 98
|
29天前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
185 43
|
1月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
179 3
|
1月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
101 8
|
1月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
298 94
|
1月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
SQL 存储 Java
Java 应用与数据库的关系| 学习笔记
快速学习 Java 应用与数据库的关系。
281 0
Java 应用与数据库的关系| 学习笔记
|
SQL 存储 Java
Java 应用与数据库的关系| 学习笔记
快速学习 Java 应用与数据库的关系。
259 0
Java 应用与数据库的关系| 学习笔记