A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 花花拉拉 中级黑马   /  2014-6-17 09:41  /  1087 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4、Map遍历

Java代码  
for(Map.Entry<String, String>  entry : map.entrySet()){        
    System.out.println(entry.getKey()+"--->"+entry.getValue());        
}   

    for(Map.Entry<String, String>  entry : map.entrySet()){     
        System.out.println(entry.getKey()+"--->"+entry.getValue());     
    }   

3、for循环

for语句的格式为:

  for (初始化语句; 条件语句; 控制语句)
  {
    语句1 ;
    语句2 ;
    ....

    语句n ;
  }

   for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环。
2、 Java 内存模型

2.1 Java 内存模型的基本原理

Java 内存模型,由于 Java 被设计为跨平台的语言,在内存管理上,显然也要有一个统一的 模型。系统存在一个主内存 (Main Memory) , Java 中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存 (Working Memory) ,工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。

因为当线程处于不同的cpu中时,它各自的变量保存在各自cpu的寄存器或者高速缓存中,这样回事的变量对于其它线程暂时不可见。



2.2 Volatile 的内存工作原理

Volatile 是保证多个线程之间变量可见性的,也就是说一个线程对变量进行了写操作,另外一个线程能够获取它最新的值。

它的工作原理是,它对写和读都是直接操作工作主存的。(这个可以通过操作字节码看到)
2.3 Synchronized 的内存操作模型 :

Synchronized, 有两层语义,一个是互斥,一个是可见性。在可见性上面,它的工作原理有点不同:当线程进入同步块时,会从主存里面获取最新值,然后当线程离开同步块时,再把变量的值更新到主存。


1.删除一个文件夹内的所有文件和文件夹



Java代码  
File file = new File(imgPath);   
if (!file.exists()) return;   
deleteDirectory(file);   
  
  
public void deleteDirectory(File path) {   
            if( path.exists() ) {   
                  File[] files = path.listFiles();   
                  for(int i=0; i<files.length; i++) {   
                         if(files[i].isDirectory()) {   
                           deleteDirectory(files[i]);   
                         }   
                         else {   
                           files[i].delete();   
                         }   
                  }   
            }   
      }  

File file = new File(imgPath);
if (!file.exists()) return;
deleteDirectory(file);


public void deleteDirectory(File path) {
                    if( path.exists() ) {
                              File[] files = path.listFiles();
                              for(int i=0; i<files.length; i++) {
                                         if(files[i].isDirectory()) {
                                                 deleteDirectory(files[i]);
                                         }
                                         else {
                                                 files[i].delete();
                                         }
                              }
                    }
          }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马