• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java编程中的4种代码块详解

java 搞代码 4年前 (2022-01-05) 62次浏览 已收录 0个评论

在本篇内容里小编个总结了Java编程中的4种代码块相关的知识点,有兴趣的朋友们可以学习下。

在Java编程中,代码块就是指用“{}”括起来的代码。下面看一下这四种代码块。

1、普通代码块

就是指类中方法的方法体。

 public void xxx(){ //code } 

2、构造块

下面用“{}”括起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都会被调用,并且优先于类构造函数(包括有参和无参的)执行。 构造块中定义的变量是局部变量。

 public class Client { {//构造代码块 System.out.println("执行构造代码块"); } publicClient() { System.out.println("执行无参构造函数"); } publicClient(String string) { System.out.println("执行有参构造函数"); } }

3、静态块

下面用static”{}”括起来的代码片段,只会在第一次加载此类时,仅执行一次,并且静态块优先于构造块执行。

 public class Demo { public Demo() { System.out.print("默认构造方法!-->"); } //构造代<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>码块 { System.out.print("构造代码块!-->"); } //静态代码块 static { System.out.print("静态代码块!-->"); } public static void test() { { System.out.println("普通方法中的代码块!"); } } } public static void main(String[]args) { Demo d = new Demo(); d.test(); } /* 运行输出结果是: 静态代码块!-->构造代码块!-->默认构造方法!-->普通方法中的代码块! */

4、同步代码块

下面使用synchronized(obj){}括起来的代码块,在多线程环境下,对共享数据进行读写操作是需要互斥进行的,否则会导致数据的不一致。常见的是synchronized用来修饰方法,其语义是任何线程进入synchronized需要先取得对象锁如果被占用了,则阻塞,实现了互斥访问共享资源。而synchronized也是有代价的。一个常见的场景是,一个冗长的方法中,其实只有一小段代码需要访问共享资源,这时使用同步块,就只将这小段代码写在synchronized block,既能够实现同步访问,也能够减少同步引入的开销。 同步代码块须写在方法中。

 class Ticket implements Runnable //extends Thread { object obj=new object();//共享对象,用来记录是否有其它进程在访问 private static int tick=100; public void run()              /*不能在这写同步函数,否则其它线程用不了,需要单独写一个同步函数*/ { while(true) {   synchronized(obj) { if(tick>0) { try { Thread.sleep(10);   /*每次运行就沉睡一下*/ } catch(Exception e) { } System.out.println(Thread.currentThread().getName()+"sale:--"+tick--); } } } } }

以上就是Java编程中的4种代码块详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java编程中的4种代码块详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址