实例化

fastJson与jackson性能对比

三世轮回 提交于 2019-11-28 17:55:14
转载:https://blog.csdn.net/u013433821/article/details/82905222 最近项目用到fastJson和jackson,为了决定到底弃用哪个,随手写了个测试看看到底谁的性能更胜一筹。 看到过很多对比的帖子,大多数结果是fastJson性能高于jackson,可偏偏像SpringMVC这样成熟的框架默认也采用的jsckson,这就引起了我的怀疑,决定自己动手试试 1、开始测试,用一个map往里面装10万个键值对,结果jackson速度快于fastjson,jackson大约只用了fastjson一半的时间 2、这次我们把ObjectMapper实例化部分也纳入计时,这次情况有变化了,fastJson明显比jsckson快了,请看代码(ObjectMapper实例化放到endTime下面) 根据上面的测试可以初步得出一个结论,jackson的ObjectMapper实例化是一个性能瓶颈,如果提前准备好实例会比fastJson要快一倍左右,随后我打开ObjectMapper构造方法看了下,确实比较繁琐,因此在实际应用中我们转json字符串的时候应当使用同一个ObjectMapper实例,避免每次手动去new新的实例,而FastJson是用静态方法(JSONObject.toJSONString()

java中的内部类(嵌套类)

Deadly 提交于 2019-11-28 16:09:36
内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。 几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。 View Code 1 /** 2 * 四种不同类型的内部类 3 * @author Administrator 4 * 5 */ 6 public class OuterOfInnerClass { 7 int out_x = 0; 8 9 public void method() {10 Inner1 inner1 = new Inner1();11 final int a = -1;12 //在方法体内部定义的内部类,只允许使用抽象或终态13 /**14 * 局部内部类15 *16 */17 class Inner2 {18 public void method() {19 out_x = 3;20 System.out.println(a);21 }22 }23 Inner2 inner2 = new Inner2();24 }25 /**26 *成员内部类 Inner Class27 *28 */29 public class Inner1 {30

Winform中GDI+画图类和方法

橙三吉。 提交于 2019-11-28 15:21:30
<记录学习笔记,方便以后回顾> 画布:Graphics 图片:Image,为所有的图片类的抽象父类,不能实例化,其下的图片类型有Png,Jpg,bmp,可以通过Image.FromFile()或者Image.FromStream()中获取,其中bmp类型图片可以通过Bitmap类获取,Bitmap继承自Image可以实例化对象 画图的步骤: 新建原始图片(原始图片包含颜色和尺寸)Initialimage,然后通过原始图片建立画布(Graphics.FromImage(image)),把目标图画入画板(Graphics.DrawImage(),可以重复画,后画的会覆盖前面,或者画矩形框Graphics.DrawRectangle(),或者画直线Graphics.DrawLine()等) 图片载体: picturebox控件:picturebox.image=Initialimage 窗体的Paint事件中:e.Graphics.DrawImageUnscaled(Initialimage,Point) 直接画在窗体中相当于设置背景图片,所有控件都会“浮”在图片上 来源: https://www.cnblogs.com/F3234505/p/11412098.html

clipboard_js使用步骤

北慕城南 提交于 2019-11-28 14:54:12
原文引用 大专栏 https://www.dazhuanlan.com/2019/08/26/5d6333b0afb5c/ 使用步骤 属性说明 使用实例 使用HTML DOM选择器实例化 使用HTML元素实例化 使用html元素列表实例化 复制静态文本 复制其他元素的内容 复制一个内容 复制多个内容的情况 剪切方式 参考链接 使用步骤 使用 clipboard.js 来可分为以下三个步骤: 定义相关的html标签 引入clisboard.js库,引入方式: 可以使用CDN: 到这里选择一个CDN: https://github.com/zenorocha/clipboard.js/wiki/CDN-Providers 也可以先下载到本地,然后引入本地。 下载可以: 直接下载压缩包 download a ZIP , 或者使用npm方式安装: npm install clipboard --save 实例化ClipboardJS对象 实例化之后可以加上监听复制成功或失败。以便给用户一些提示信息。 属性说明 data-clipboard-text:复制的静态内容 data-clipboard-target:设置为其他元素的选择器,将复制该选择器中元素的内容 data-clipboard-action: 复制的方式, data-clipboard-action=”copy” :复制方式

Java IO

老子叫甜甜 提交于 2019-11-28 13:34:33
IO类 IO本身就是输入输出的意思,IO类就是为了与磁盘进行IO相关操作的工具、桥梁; IO类基本可以分成 字节流 和 字符流 ; 而既然是IO,那不管是哪个流都是分为输入和输出两大块 字节流 InputStream(抽象) (字节输入流) InputStream是所有字节输入流的抽象基类,提供字节输入的通用方法 基本方法: read() //从文件中读取数据的下一字节 read(byte[]) //从文件中读取一个数组量的字节 read(byte[], int, int) //从文件中读取限定位置数量的字节 注:当读取不到字节时会返回 -1 FileInputStream 该流是父类提供用于实例化的读取文件的输入流,能从指定文件中读取字节,从而读取文件内容 构造方法有两个: 需要实例化一个File文件对象 FileInputStream( File ) 不用实例化File对象 FileInputStream( String ) 使用方式 一个一个字节读取(效率慢) public static void main(String[] args) throws IOException { //创建一个字节输入流对象,必须明确数据源 File file = new File("c:\\file.txt"); FileInputStream fis = new

什么是单例模式?单例模式有什么作用?为什么要用单例模式

空扰寡人 提交于 2019-11-28 12:26:23
单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 介绍 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决: 一个全局使用的类频繁地创建与销毁。 何时使用: 当您想控制实例数目,节省系统资源的时候。 如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码: 构造函数是私有的。 应用实例: 1、一个党只能有一个书记。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点:

Spring中的循环依赖解决详解

。_饼干妹妹 提交于 2019-11-28 11:38:44
前言 说起Spring中循环依赖的解决办法,相信很多园友们都或多或少的知道一些,但当真的要详细说明的时候,可能又没法一下将它讲清楚。本文就试着尽自己所能,对此做出一个较详细的解读。另,需注意一点,下文中会出现类的实例化跟类的初始化两个短语,为怕园友迷惑,事先声明一下,本文的实例化是指刚执行完构造器将一个对象new出来,但还未填充属性值的状态,而初始化是指完成了属性的依赖注入。 一、先说说Spring解决的循环依赖是什么 Java中的循环依赖分两种,一种是构造器的循环依赖,另一种是属性的循环依赖。 构造器的循环依赖就是在构造器中有属性循环依赖 ,如下所示的两个类就属于构造器循环依赖: 1 @Service 2 public class Student { 3 @Autowired 4 private Teacher teacher; 5 6 public Student (Teacher teacher) { 7 System.out.println("Student init1:" + teacher); 8 } 9 10 public void learn () { 11 System.out.println("Student learn"); 12 } 13 } 1 @Service 2 public class Teacher { 3 @Autowired 4 private

细说元类

感情迁移 提交于 2019-11-28 10:20:48
基于python的宗旨:一切皆对象。 而对象都是由类实例化得到的 class OldboyTeacher(object): school = 'oldboy' def __init__(self,name): self.name = name def run(self): print('%s is running'%self.name) t1 = OldboyTeacher('jason') # 对象t1是由类OldboyTeacher实例化得到 那么类也是对象,它又是谁实例化得到的呢? # 分别查看对象t1和OldboyTeacher的类型 print(type(t1)) print(type(OldboyTeacher)) # 结果为: <class '__main__.OldboyTeacher'> <class 'type'> 结论1:元类就是产生类的类,默认情况下type就是所有类的元类 0 | 1 二、不依赖于class关键字创建类 根据第一个结论我们能理出两条对应关系   1.调用元类得到自定义的类   2.调用自定义的类得到自定义的类的对象 现在我们来看第一对关系,调用元类来得到自定义的类,都需要哪些参数(OldboyTeacher=type(...),括号内传什么?) 我们自定义一个类的时候都有哪些关键的组成部分:   1.类名   2.类的父类   3

单例模式的八种写法比较

泪湿孤枕 提交于 2019-11-28 07:44:59
  单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 基本的实现思路 单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。 单例的实现主要是通过以下两个步骤: 将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例; 在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用。 注意事项 单例模式在多线程的应用场合下必须小心使用。如果当唯一实例尚未创建时,有两个线程同时调用创建方法

《Effective Java第二版》总结

一世执手 提交于 2019-11-28 07:14:21
第1条:考虑用静态工厂方法代替构造器 通常我们会使用 构造方法 来实例化一个对象,例如: // 对象定义 public class Student{ // 姓名 private String name; // 性别 private String sex; public Student(String name,String sex){ this.name = name; this.sex = sex; } } // 实例化对象 Student student = neew Student("MarkLogZhu","男"); 然后我们采用 静态工厂方法 实例化对象: // 对象定义 public class Student{ // 姓名 private String name; // 性别 private String sex; private Student(String name,String sex){ this.name = name; this.sex = sex; } public static Student getMaleStudent(String name){ return new Student(name,"男"); } } // 实例化对象 Student student = Student.getMaleStudent("MarkLogZhu");