java新手笔记12 单例
1.单例
package com.yfs.javase;
public class Singleton {
//private static final Singleton single = new Singleton();//定义自己的对象引用
private static Singleton single;
// 控制构造方法
private Singleton() {
}
// 提供获取对象的方法
public static Singleton getInstance() {
if(single == null) {
System.out.println("创建Singleton对象....");
single = new Singleton();
}
return single;
}
public void sayHello() {
System.out.println("Hello....");
}
}
2.单例测试
package com.yfs.javase;
public class SingleTest {
public static void main(String[] args) {
// Singleton s1 = new Singleton();
// s1.sayHello();
//
// Singleton s2 = new Singleton();
// s2.sayHello();
//
// final int a = 10;
//a = 20;
// System.out.println("s1 == s2 : " + (s1 == s2));
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
s1.sayHello();
s2.sayHello();
System.out.println("s1 == s2 : " + (s1 == s2));
}
}
3.开关灯示例
package com.yfs.javase;
public class Light {
// 属性编号 状态
private int index;
private boolean lighting = true;
// 构造方法
public Light(int index) {
this.index = index;
setIndex(index);
}
// 查看状态方法
public boolean isLighting() {
return lighting;
}
// 获取灯的编号
public int getIndex() {
return index;
}
// 根据编号设置灯的状态
private void setIndex(int index) {
for (int i = 1; i < index; i++) {
if (index % i == 0) {
// if (lighting) {//== true
// lighting = false;
// } else {
// lighting = true;
// }
// lighting = lighting ? false : true;
lighting = !lighting;
}
}
}
}
4.灯测试
package com.yfs.javase;
public class LightTest {
public static void main(String[] args) {
//灯数组
Light[] lights = new Light[100];
//创建对象
for (int i = 0; i < lights.length; i++) {
lights[i] = new Light(i + 1);
}
//查看灯的状态
for (int i = 0; i < lights.length; i++) {
//灯类必须查看状态方法
if(lights[i].isLighting()){
System.out.println("第 " + lights[i].getIndex() + " 灯是亮的");
}
}
}
}
5.乘法表
package com.yfs.javase;
public class Demo {
private Demo() {
}
public static Demo get() {
return new Demo();
}
public static void main(String[] args) {
for (int i = 1,j = 1; i < 10; ) {
System.out.print(j + " * " + i + " = " + (i * j) + " ");
j++;//让列增长
if(j == i + 1) {
j = 1;
System.out.println();
i++;//行增长
}
}
}
}
java新手笔记12 单例的更多相关文章
- Java学习笔记之---单例模型
Java学习笔记之---单例模型 单例模型分为:饿汉式,懒汉式 (一)要点 1.某个类只能有一个实例 2.必须自行创建实例 3.必须自行向整个系统提供这个实例 (二)实现 1.只提供私有的构造方法 2 ...
- JAVA自学笔记12
JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...
- java中安全的单例与不安全的单例
java中安全的单例与不安全的单例 1.内部静态类(安全的) public class Singleton { private static class SingletonHolder{ privat ...
- java新手笔记11 类的静态属性、方法(单例)
1.Person类 package com.yfs.javase; public class Person { String name;//每个对象上分配 与对象绑定 int age; char se ...
- Java笔记(十一)……单例设计模式
设计模式 解决某一类问题最行之有效的方法 Java中有23中设计模式 单例设计模式 解决一个类在内存中只存在一个对象 思路 将构造函数私有化 在类中创建一个本类对象 提供一个方法可以获取到对象 两种方 ...
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
直接上代码: public enum Boss { INSTANCE; private String name; public void doSomeThing() { System.out.prin ...
- JAVA的设计模式之单例设计模式
1.确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例. 1)理论 Java Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在. 使用Singl ...
- Java公开课-06.单例
一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...
- java基础学习之单例设计模式学习
最近狂补java基础的我重新学习了下单例,下面直接贴出代码,以作备忘 package com.darling.single; /** * 单例模式 * 单例即在内存中只存在该类的一个实例,要想实现这个 ...
随机推荐
- oracle 分区和分区索引
一.个人理解:建表时一般都会指定在一个表空间上,但是可能随着表空间扩大,查询越来越慢,分区表就是将一个表实际存在不同的表空间,oracle存储分为块,断,表空间.新建一个表,会给表分配指定大小的段,段 ...
- HDU 4135 Co-prime
思路:直接用求(b,1)范围内互质的数,(a-1,1)范围内互质的数.再求反 就是敲一下容斥模板 #include<cstdio> #include<cstring> #inc ...
- HDU 1042 N!(高精度计算阶乘)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- Java读取文件夹大小的6种方法及代码
(一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { publ ...
- A Tour of Go For
Go has only one looping construct, the for loop. The basic for loop looks as it does in C or Java, e ...
- jQuery获取Select选中的Text和Value,根据Value值动态添加属性
语法解释:1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发2. var chec ...
- 使用phpize建立php扩展(Cannot find config.m4)(转)
php源码:/root/soft/php-5.3.4php安装: /usr/local/php [root@ns root]# phpizeCannot find config.m4.Make sur ...
- WSGI是一种编程接口,而uwsgi是一种传输协议
http://uwsgi-docs.readthedocs.io/en/latest/Nginx.html http://sunxiunan.com/?p=1778 cgi---------fastc ...
- JNI 学习笔记系列(二)
c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示.c中没有byte类型,一般用char表示byte类型 ...
- Linux C —— 多线程
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5769417. ...