【单例模式】
     确保某一个类,只能产生一个实例。
设计思路:
====将构造函数私有化,确保类外部,不能使用new关键字自行创建对象。
====在类内部实例化一个对象,并通过静态方法返回。
(1)饿汉式单例模式
优点:线程安全
缺点:在类加载的时候,就实例化对象,提前占用系统资源

 class Dog{

     private Dog(){

         System.out.println("小蠢狗");
} private static Dog cutedog=new Dog(); public static Dog getInstanca(){
return cutedog;
} }
(2.)懒汉式单例模式:
优点:解决了饿汉式单例,一加载就提前占用资源的问题。
缺点:线程不安全

 class Dog{

     private Dog(){

         System.out.println("小蠢狗");
} private static Dog cutedog=null; public static Dog getInstanca(){
if (cutedog==null) {
cutedog=new Dog();
}
return cutedog;
} }
(3.)线程锁懒汉式模式
通俗来说,就是在懒汉式单例模式的方法上加锁
synchronized:将一个方法或者代码块进行加锁,同一时间只允许一个线程访问
使用同步块对方法进行加锁,确保懒汉式单例,可以线程安全
缺点:效率低下
 class Dog{

     private Dog(){

         System.out.println("小蠢狗");
} private static Dog cutedog=null; public static synchronized Dog getInstanca(){
if (cutedog==null) {
cutedog=new Dog();
}
return cutedog;
} }

(4.)双重加锁懒汉模式

只有第一次Dog为null时,才进行线程锁,当后续Dog不为null时,说明第一次已经赋值了,·产生了一个实例,就无需线程锁,可以允许多个线程同时拿走dog
class Dog{

    private Dog(){

        System.out.println("小蠢狗");
} private static Dog cutedog=null; public static synchronized Dog getInstanca(){
if (cutedog==null) {
synchronized (Dog.class) {
if (cutedog==null) {
cutedog=new Dog();
}
}
}
return cutedog;
} }
(5.)静态内部类实现单例
优点:解决了饿汉式提前占用资源的问题,解决了懒汉式线程不安全的问题,静态内部类只有当被调用的时候才开始首次被加载。
 class Dog{

     private Dog(){

         System.out.println("小蠢狗");
} private static class KIttyDod{
private static Dog cutedog=new Dog();
}
public static Dog getInstance(){
return KIttyDod.cutedog;
} }
【Math】
;?Math位于Java.lang包中
(1.)Math.abs(); 求绝对值
(2.)Math.cbrt(); 求立方根
(3.)Math..sprt();求平方根
(4.)Math.max/min(double1,double2); 返回两个值中最大最小值
(5.)Math.pow(a,b); 求a的b次方
(6.)Math.floor();返回小于指定浮点数的一个整数,返回的是double类型,例如10.0
Math.ceil();------大于---------
(6.)Math.round();四舍五入,返回一个整数类型,如果传入double,返回long,传入float,返回int
(7.)Math.rint();返回最接近参数的整数,如果10.5与10和11同时接近,返回偶数
(8.)Math.random();返回[0.1,1.0)之间的double随机值
 
【求一个数保留几位小数】
double a=23.22122222;
double b=Math.round(a*Math.pow(10, 3))/Math.pow(10, 3);
System.out.println(b);
 
【Date】
/**实例化
* 空参构造,默认取到当前时间
*/
Date date=new Date();
Date d=new Date();
/**
* 传入一个long类型的时间戳,取到指定时间。
* date.getTime(); 取到一个时间的时间戳,从0时区,1970年1月1日0:0:0到当前时间毫秒数。
*/
System.out.println(d);
 
(1.)equals();比对两个时间是否相等
(2.)a.before(b); 检测一个时间是不是在制定时间之前
after(): --------------------------------------之后
(3.)a.compare to(b); 前面>参数 返回1 前面<小于参数,返回-1 相等,返回0
(4.)setTime();传入一个长整型(时间戳),重新设置时间
(5.)toString();格式化日期转义格式yyyy-mm-dd。
【SimpleDateFormat】
对日期格式进行实例化。
实例化对象时,传入格式化参数,用字母代表对应部分。
*  字母  日期或时间元素  表示  示例  
 * y  年  Year  1996; 96  
 * M  年中的月份  Month  July; Jul; 07  
 * d  月份中的天数  Number  10  
 * E  星期中的天数  Text  Tuesday; Tue  
 * H  一天中的小时数(0-23)  Number  0  
 * h  am/pm 中的小时数(1-12)  Number  12  
 * m  小时中的分钟数  Number  30  
 * s  分钟中的秒数  Number  55  
(1.)format();用于传人一个Date类型的参数,并返回格式化之后的字符串
Date date=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E" );
String s=sf.format(date);
System.out.println(s);
(2.)sf.parse("2018年04月13日 14:08:15 星期五");将字符串格式的时间,转成Date类型,要求传入的字符串格式,必须与实例化时的模式,保持一致。
(3.)toPattern();返回当前格式化的模式字符串。
【Calendar日历类】
Calendar ca=Calendar.getInstance();
(1.)Calendar日历类是一个抽象类,不能直接通过new拿到对象,必须使用Calendar.getInstance();拿到一个Calendar日历类对象
(2.)ca.getTime(); 返回一个日期对象
(3.)ca.add(int field, int amount) ; 根据日历的规则,将指定的时间量添加或减去给定的日历字段。
【Random随机数类】
取随机数,有两种构造:
--------------空参构造------------
Random ran=new Random();
--------------传入一个种子数--------只要种子数相同,那么在相同次数取到的随机数肯定相同,这是伪随机数。
Random ran=new Random(100);
Random ran=new Random(System.currentTimeMillis());
System.currentTimeMillis();拿到当前时间戳,这样就是取随机数了。
(1.)nextInt(); 随机获得一个整数
(2.)nextInt(n); 随机获得从0到n随机数,含0不含n
随机生成两位随机数: System.out.println(ran.nextInt(90)+10);

单例模式详解及java常用类的更多相关文章

  1. 9种Java单例模式详解(推荐)

    单例模式的特点 一个类只允许产生一个实例化对象. 单例类构造方法私有化,不允许外部创建对象. 单例类向外提供静态方法,调用方法返回内部创建的实例化对象.  懒汉式(线程不安全) 其主要表现在单例类在外 ...

  2. 事件驱动模型实例详解(Java篇)

    或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类 ...

  3. Java基础 —— Java常用类

    Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...

  4. <转>详解DNS的常用记录(上):DNS系列之二

    详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派 ...

  5. Java常用类之要点总结

    Java常用类之要点总结

  6. Java常用类:包装类,String,日期类,Math,File,枚举类

    Java常用类:包装类,String,日期类,Math,File,枚举类

  7. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  8. Java 常用类总结(SE基础)

    本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...

  9. 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)

    一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)     概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...

随机推荐

  1. Redis 中的数据类型及基本操作

    Redis 内置的数据类型有 5种:字符串String.哈希Hash.列表List.集合Set.有序集合ZSet 字符串类型 String 是 Redis 中最基本的类型,一个 key 对应着一个 v ...

  2. postman 简单教程-实现简单的接口测试

    最近开始做接口测试了,因为公司电脑刚好有postman,于是就用postman来做接口测试,哈哈哈哈,...postman 功能蛮强大的,还比较好用,下面说下postman如何来测试接口 1.下载po ...

  3. C#图解 (类和继承)

    所有的类都派生自object类 除了特殊的类object ,所有的类都是派生类,即使它们没有基类的规格说明.类object是唯一的非派生类,因为它是继承层次结构的基础. 一个类声明的基类规格说明只能有 ...

  4. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  5. Django—urls系统:urls基础

    Django的urls系统简介 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映 ...

  6. Alpha第七天

    Alpha第七天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  7. 学号:201621123032 《Java程序设计》第10周学习总结

    1:本周学习总结 1.1.:以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2:书面作业 2.1.:常用异常--结合题集题目7-1回答 2.1.1:自己以前编写的代码中经常出现什么异常.需要捕 ...

  8. java中<> 的用法

    泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引 ...

  9. 【iOS】Swift if let 和 if var

    if let unwrappedOptional = postDict { print("The optional has a value! It's \(unwrappedOptional ...

  10. centos7 编译安装greenplum5.7

    一.配置系统 安装是以一个主节点,三个子节点进行安装.gp是在github上下载的5.7的源码.地址https://github.com/greenplum-db/gpdb/tree/5.7.0. 1 ...