黑马程序员_Java学习日记2_面向对象总结1

----------------------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


发布了42 篇原创文章 · 获赞 1 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览