----------------------android培训、java培训、期待与您交流! ---------------------
1.关于main函数的讲解
主函数,是一个特殊的函数,作为程序的入口,可以被jvm调用。
主函数的定义:
public:代表该函数的权限是最大的
static:代表着主函数随着类的加载就已经存在了。
void:主函数没有具体的返回值。
main:不是关键字,但是,是一个特殊的单词,可以被jvm识别。
(String[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组。
主函数是固定格式的:jvm识别。
arguments(参数) == args
jvm在调用主函数时,传入的是new String[0];
----------------------实验-------------------------
class MainDemo
{
public static void main(String[] args)
{
String[] arr = {"hah","heihei","xixi"};
MainTest.main(arr);
}
}
class MainTest
{
public static void main(String[] args)
{
for(int x=0; x<args.length;x++)
System.out.println(args[x]);
}
}
----------------------实验-------------------------
javac MainDemo.java
java MainDemo hah hei xix //后面的参数传入args数组中,args的长度变为3,;如果后面没有参数,则args长度为0
2.Java设计模式之单例模式
单例设计模式,解决一个类在内存只存在一个对象。
想要保证对象唯一,需要达到以下3个要求。
1.为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象。
2.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象。
3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
这3步用代码实现,如下。
1.将构造函数私有化
2.在类中创建一个本类对象
3.提供一个方法可以获取到该对象。
单例模式有两种实现方法,分别是饿汉式和懒汉式。
饿汉式:
class Single()
{
private Single(){}
private static Single s = new Single();
public static Single getInstance()
{
return s;
}
}
懒汉式(去掉程序中的//,即为实际使用中优化过的方法):
class Single
{
private static Single s = null;
private Single(){}
//同步锁synchronized,会降低程序的效率;以下是最终解决方案。但还是会有点低效
public static Single getInstance()
{
// if(null==s)
// {
// synchronized(Single.class)
// {
if(null==s)
s = new Single();
// }
// }
return s;
}
}
最后,关于单例模式的几点说明。
1.如果要用单例模式,对于事物该怎么描述,还怎么描述。当需要将该事物的对象保证在内存中唯一时,就将“单例模式”需要的3个条件加上即可。
2.实际开发时,多用饿汉式,安全,简洁!
3.懒汉式的延迟加载,Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象,也叫对象的延时加载。
4.单例设计模式,定义单例,建议使用饿汉式!懒汉式面试时考得多,还要涉及多线程和锁机制。
-----------------------android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima