java代码和详细的代码应用

简介: 代码块分为局部、构造、静态和同步代码块。局部代码块控制变量生命周期,例如 `int a` 只在特定代码块内有效。构造代码块用于创建对象时执行附加功能,避免构造方法中代码重复。静态代码块随类加载执行一次,常用于初始化操作。同步代码块确保多线程环境下方法执行的原子性,通过 `synchronized` 关键字实现。

代码块分类:

(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); // 报错
//代码效果参考:https://www.vipwb.com/sitemap/post.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("包");

相关文章
|
2天前
|
Java 编译器 开发者
Java中的this关键字详解:深入理解与应用
本文深入解析了Java中`this`关键字的多种用法
26 9
|
2天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
19 5
|
2天前
|
人工智能 自然语言处理 搜索推荐
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
20 5
|
7天前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
100 11
|
2天前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis,从基础到高级的深度细节应用
本文详细介绍了MyBatis,一个轻量级的Java持久化框架。内容涵盖MyBatis的基本概念、配置与环境搭建、基础操作(如创建实体类、Mapper接口及映射文件)以及CRUD操作的实现。此外,还深入探讨了高级特性,包括动态SQL和缓存机制。通过代码示例,帮助开发者更好地掌握MyBatis的使用技巧,提升数据库操作效率。总结部分强调了MyBatis的优势及其在实际开发中的应用价值。
11 1
|
11天前
|
JSON Java 数据挖掘
利用 Java 代码获取淘宝关键字 API 接口
在数字化商业时代,精准把握市场动态与消费者需求是企业成功的关键。淘宝作为中国最大的电商平台之一,其海量数据中蕴含丰富的商业洞察。本文介绍如何通过Java代码高效、合规地获取淘宝关键字API接口数据,帮助商家优化产品布局、制定营销策略。主要内容包括: 1. **淘宝关键字API的价值**:洞察用户需求、优化产品标题与详情、制定营销策略。 2. **获取API接口的步骤**:注册账号、申请权限、搭建Java开发环境、编写调用代码、解析响应数据。 3. **注意事项**:遵守法律法规与平台规则,处理API调用限制。 通过这些步骤,商家可以在激烈的市场竞争中脱颖而出。
|
29天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
55 3
|
29天前
|
安全 算法 Java
Java CAS原理和应用场景大揭秘:你掌握了吗?
CAS(Compare and Swap)是一种乐观锁机制,通过硬件指令实现原子操作,确保多线程环境下对共享变量的安全访问。它避免了传统互斥锁的性能开销和线程阻塞问题。CAS操作包含三个步骤:获取期望值、比较当前值与期望值是否相等、若相等则更新为新值。CAS广泛应用于高并发场景,如数据库事务、分布式锁、无锁数据结构等,但需注意ABA问题。Java中常用`java.util.concurrent.atomic`包下的类支持CAS操作。
64 2
|
1月前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
67 2
|
1月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
90 5