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; /** * 单例模式 * 单例即在内存中只存在该类的一个实例,要想实现这个 ...
随机推荐
- 如何使用C#和VB发送和接收MSMQ消息
在这篇博客中,我们将就如何实现System.Messaging类发送和接收的XML消息发送从MSMQ队列,你可能会遇到接收的XML消息的一些问题. 我们将首先加入参考System.Messaging ...
- scala学习笔记(四)样本类与模式匹配
访问修饰符 格式:private[x]或protected[x],x指某个所属包.类或单例对象,表示被修饰的类(或方法.单例对象),在X域中公开,在x域范围内都可以访问: private[包名]:在该 ...
- spring 的配置 bean>>property>>name属性
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- go语言与所谓的包
import后面接的是目录的名字,而不是所谓包的名字,并且如果一个目录下面还有目录的话都必须要写进去,比如: import "MyPackage" import "MyP ...
- JavaScript高级程序设计—阅读笔记(第一部分)
第一章 JavaScript简介1.JavaScript组成(核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM))2.文档对象模型(DOM),提供访问和操作网页内容的方法和 ...
- 【Android - 进阶】之事件分发机制
参考资料: View事件分发:http://blog.csdn.net/pi9nc/article/details/9281829 ViewGroup事件分发:http://blog.csdn.net ...
- EasyUI实例源码
jQuery+EasyUI实例源码 http://www.51aspx.com/code/jQueryEasyUIExample ASP.NET MVC+EF+EasyUI权限 http://www. ...
- Log4E
工具地址:http://marketplace.eclipse.org/content/log4e Log4E插件能够帮助你在Java项目中轻松地创建记录器.它可以在以下几个任务中提供帮助:记录器声明 ...
- ZooKeeper场景实践:(6)集群监控和Master选举
1. 集群机器监控 这通经常使用于那种对集群中机器状态,机器在线率有较高要求的场景,可以高速对集群中机器变化作出响应.这种场景中,往往有一个监控系统,实时检測集群机器是否存活. 利用ZooKeeper ...
- [置顶] [VS2010]逸雨清风 永久稳定音乐外链生成软件V0.1
音乐外链说明:现在的很多网站都有用到外链,特别是音乐外链,在博客.空间里设作背景音乐.网上也有很多上传外链的网站,不过都不稳定而且有容量限制,而且似乎所有网站其实都是用的同一个源码组件,都是链接到Ra ...