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("包");

相关文章
|
2天前
|
JSON Java BI
一次Java性能调优实践【代码+JVM 性能提升70%】
这是我第一次对系统进行调优,涉及代码和JVM层面的调优。如果你能看到最后的话,或许会对你日常的开发有帮助,可以避免像我一样,犯一些低级别的错误。本次调优的代码是埋点系统中的报表分析功能,小公司,开发结束后,没有Code Review环节,所以下面某些问题,也许在Code Review环节就可以避免。
31 0
一次Java性能调优实践【代码+JVM 性能提升70%】
|
5天前
|
存储 缓存 JavaScript
|
12天前
|
监控 Java 数据库连接
Java面试题:如何诊断和解决Java应用的内存泄漏问题?
Java面试题:如何诊断和解决Java应用的内存泄漏问题?
17 2
|
3天前
|
存储 安全 Java
深入理解Java内存模型(JMM)及其在并发编程中的应用
Java内存模型(JMM)是Java虚拟机规范中定义的一套规则,它指导着线程如何通过内存交互。JMM不仅关乎数据一致性与可见性问题,还直接影响到并发程序的正确性和性能。本文将探讨JMM的核心概念、工作原理及其在高效并发编程中的实践应用,旨在为读者提供一套完整的理论框架和实战技巧,以应对复杂并发环境下的挑战。
|
6天前
|
SQL Java 数据处理
实时计算 Flink版产品使用问题之使用MavenShadePlugin进行relocation并遇到只包含了Java代码而未包含Scala代码,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11天前
|
Java 编译器 API
Java中的Lambda表达式:简化代码,提升性能
在Java 8中,Lambda表达式的引入为开发者提供了一种更加简洁、灵活的编程方式。本文将深入探讨Lambda表达式的概念、语法、使用场景及其在Java中的应用示例,帮助读者更好地理解和掌握这一强大工具,从而优化代码结构,提高开发效率。
|
12天前
|
Java API
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
Java面试题:说明Lambda表达式在Java中的应用,以及函数式接口的概念和作用。
13 0
|
12天前
|
设计模式 Java
Java面试题:描述观察者模式的工作原理及其在Java中的应用。
Java面试题:描述观察者模式的工作原理及其在Java中的应用。
12 0
|
12天前
|
监控 网络协议 Java
Java面试题:解释Java NIO与BIO的区别,以及NIO的优势和应用场景。如何在高并发应用中实现NIO?
Java面试题:解释Java NIO与BIO的区别,以及NIO的优势和应用场景。如何在高并发应用中实现NIO?
13 0
|
12天前
|
缓存 搜索推荐 Java
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
15 0