今天学习了:
1、linux 按照文件大小查找
2、堆和栈的区别
3、单例模式
4、干煸杏鲍菇失败了
linux 中按照文件大小查找文件
大于500M的文件 find / -size +500M
小于500M的文件 find / -size -500M
100 到500M的文件 find / -size +100M -size -500M
java 中堆和栈的区别
区别
java中堆和栈的区别自然是面试中的常见问题,下面几点就是其具体的区别
各司其职
最主要的区别就是栈内存用来存储局部变量和方法调用。
而堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。
独有还是共享
栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有内存。
而堆内存中的对象对所有线程可见。堆内存中的对象可以被所有线程访问。
异常错误
如果栈内存没有可用的空间存储方法调用和局部变量,JVM会抛出java.lang.StackOverFlowError。
而如果是堆内存没有可用的空间存储生成的对象,JVM会抛出java.lang.OutOfMemoryError。
空间大小
栈的内存要远远小于堆内存,如果你使用递归的话,那么你的栈很快就会充满。如果递归没有及时跳出,很可能发生StackOverFlowError问题。
你可以通过-Xss选项设置栈内存的大小。-Xms选项可以设置堆的开始时的大小,-Xmx选项可以设置堆的最大值。
设计模式-单例模式
单例模式是设计模式中最简单的模式之一。通常,普通类的构造函数是公有的,外部类可以通过“new 构造函数()”来生成多个实例。但是,如果将类的构造函数设为私有的,外部类就无法调用该构造函数,也就无法生成多个实例。这时该类自身必须定义一个静态私有实例,并向外提供一个静态的公有函数用于创建或获取该静态私有实例。
分类:
懒汉模式,第一次创建对象时候才调用
if(instance==null)
{instance=newLazySingleton();}
恶汉模式,类一旦加载就创建一个单例
private static final HungrySingleton instance=new HungrySingleton();
单例模式的应用场景
在应用场景中,某类只要求生成一个对象的时候,如一个班中的班长、每个人的身份证号等。
当对象需要被共享的场合。由于单例模式只允许创建一个对象,共享该对象可以节省内存,并加快对象访问速度。如 Web 中的配置对象、数据库的连接池等。
当某类需要频繁实例化,而创建的对象又频繁被销毁的时候,如多线程的线程池、网络连接池等。
干煸杏鲍菇失败了
昨天做了个干煸杏鲍菇,没想到含水量居然这么大,下次考虑先用水煮,把水分煮出来再炒,希望不要影响口感。
网友评论