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; /** * 单例模式 * 单例即在内存中只存在该类的一个实例,要想实现这个 ...
随机推荐
- NOIP2015 提高组(senior) 解题报告
过了这么久才来发解题报告,蒟蒻实在惭愧 /w\ Day1 T1 [思路] 模拟 [代码] #include<iostream> #include<cstring> #inclu ...
- Spring笔记(四)SpingAOP
需要的Jar包(String3.2) com.springsource.net.sf.cglib-2.2.0.jar // 作用于cglib方式的动态代理 com.springsource.org.a ...
- HDOJ-ACM1013(JAVA)
这道题也很简单~主要是将输入转为字符串(存储大数,操作字符数组) 题意: 24 : 2 + 4 = 6 输出6 39 : 3 + 9 = 12 , 1 + 2 = 3 输出3 999: 9 + 9 ...
- php tcp socket 学习汇总
推荐实例:PHP socket 深入浅出讲解:php的socket通信 基于socket.io的实时消息推送 php socket通信(tcp/udp) PHP向socket服务器收发数据 php实现 ...
- 问题-Delphi在多线程中使用其他窗体上的控件,报“尚未调用CoInitialize”解决方法
1.uses ActiveX; 2. procedure HLCJ.Execute;begin CoInitialize(nil); //要使用的控件 CoUninitialize; ...
- 如何查看tomcat是32位还是64位
原文地址:http://www.cnblogs.com/andysd/p/3940976.html
- 使用cxf写web service的简单实例
增加CXF依赖 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>apache-cx ...
- Android_消息机制
Android通过Looper.Handler来实现消息循环机制. Android的消息循环是针对线程的,每个线程都可以有自己的消息队列和消息循环. Android系统中的Looper负责管理线程的消 ...
- ASP.NET用HttpListener实现文件断点续传
本文转载:http://www.cnblogs.com/TianFang/archive/2007/01/03/610739.html 断点续传的原理很简单,就是在Http的请求和应答的报文头上和一般 ...
- MVC - HtmlHelper类
传统的Html元素不能和服务端数据进行绑定 HtmlHelper类提供了一系列的方法来生成Html元素 并可以实现与数据绑定在一起 然后生成Html Html.BeginForm(actionName ...