实例化

【Java多线程】――定时器Timer的使用

匿名 (未验证) 提交于 2019-12-02 21:53:52
abstract class TimerTask implements Runnable{...} 一、schedule多个任务计划执行 首先先来看一下Timer的最基本用法,schedule(TimerTask, Date),我们要先创建一个类继承TimerTask类,并重写run()方法,然后实例化这个类的对象,作为schedule(TimerTask, Date)方法的参数之一。另一个参数是我们需要TimerTask中任务执行的时间。另外,当两个任务都需要计划执行,并且是使用了同一个Timer实例,而第一个执行的任务有需要耗费较长的时间时,则第二个任务会延迟进行,当第一个任务执行后第二个任务马上开始执行,两个线程不会异步执行。 public class Run1 { private static Timer timer = new Timer(); static public class MyTask extends TimerTask{ @Override public void run() { try { System.out.println("任务1执行时间为:"+new Date()); Thread.sleep(5000); }catch(InterruptedException e) { e.printStackTrace(); } } } static

Java中的单例模式

匿名 (未验证) 提交于 2019-12-02 21:45:52
public class HungerySingleton { //ClassLoader 类加载时立即实例化对象,仅实例化一次,线程安全的 private static HungerySingleton hungerySingleton = new HungerySingleton(); public static HungerySingleton getInstance(){ return hungerySingleton; } //利用线程输出(后面就不写了哈) public static void main(String[]args){ for(int i=0;i<20;i++){ Thread thread =new Thread() { @Override public void run() { HungerySingleton hungerySingleton = HungerySingleton.getInstance(); System.out.println(hungerySingleton); } }; thread.start(); } } } 优点:仅实例化一次,线程是安全的。获取实例的速度快 缺点:类加载时立即实例化对象,可能实例化的对象不被使用,造成内存的浪费。 二、懒汉式 public class HoonSingleton { /

Spring 实例化Bean的3种方式

匿名 (未验证) 提交于 2019-12-02 21:45:52
要使用Spring中的Bean,需要先创建这个Bean的实例。 实例化Bean有3种方式: 构造器方式 静态工厂方式 实例工厂方式 构造器方式 构造器方式是最常用的。在Bean中写构造函数,然后在配置文件中传递实参。 1、写一个Bean,用构造器初始化这个Bean 1 class Student{ 2 private String name; 3 private int score; 4 5 //通过构造器初始化对象 6 public Student(String name,int score){ 7 this.name=name; 8 this.score=score; 9 } 10 11 public void out(){ 12 System.out.println(name+"的成绩是"+score); 13 } 14 } 2、在Spring配置文件中配置这个Bean,传递实参 1 <bean name="student" class="my_package.Student"> 2 <constructor-arg value="张三" /> 3 <constructor-arg value="90" /> 4 </bean> 3、使用这个Bean 1 public class Test { 2 public static void main(String[] args)

C#委托学习笔记

你。 提交于 2019-12-02 21:27:10
1、C#委托是什么 c#中的委托可以理解一种类,这种类实例化后可以将函数的包装成一个变量(该变量就变成了对该函数的“引用”),它使得这个变量(函数)可以作为参数来被传递 ,这在作用上相当于c 中的函数指针。c 用函数指针获取函数的入口地址,然后通过这个指针来实现对函数的操作。 委托的定义和方法的定义类似,只是在定义的前面多了一个delegate关键字。如下定义: public delegate void MyDelegate(int para1, string para2); 委托能包装的方法是有一定限制的,例如能被前面的委托类型MyDelegate包装的方法需要满足以下条件: 1.方法的返回类型必须为void; 2.方法必须有两个参数,并且第一个参数应为int类型,第二个参数为string类型。 总结:可以被委托包装的方法必须满足以下规则: 1.方法的签名必须与委托一致,方法签名包括参数的个数、类型和顺序; 2.方法的返回类型要和委托一致,注意,方法的返回类型不属于方法签名的一部分。 2、委托的使用 //委托使用的演示 class Program { public delegate void MyDelegate(int para1, int para2); //1.使用delegate关键字来定义一个委托类型 static void Main(string[] args) {

python面向对象

半腔热情 提交于 2019-12-02 17:53:20
编程语言的分类 编程语言的分类大体可分为三类, 面向对象、面向过程、面向对象oop。 面向机器:它是抽象成机器指令,这样机器容易理解,代表为汇编语言。 面向过程:做一件事情,排出一个步骤,第一步做什么,第二步做什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理。它特点是问题规模小,可以步骤化,按部就班的处理。代表语言 C语言 。 面向对象oop:随着计算机需要解决的问题的规模不断扩大,情况越来越复杂,需要很多人,很多部门协作,面向过程编程不太适合了。这个面对相对编程就出来了。代表语言 :c++,Java,Python等 。 面向对象 面向对象适合大规模软件,是一种认识世界,分析世界的方法论,它将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。用计算机语言来描述类,就是 属性和方法 的集合。 对象instance、object 对事是类的具象,是一个实体,对于我们每个人这个个体,都是抽象概念人类的不同实体。 比如:你吃鱼,你就是对象,鱼也是对象,而吃是动作。你是具体的人,是具体的对象,你属于人类,人类是个抽象的概念,是无数具体的个体的抽象。鱼也是具体的对象,就是你吃的这一条具体的鱼,这条鱼属于鱼类,是无数的鱼抽象出来的概念。吃是动作,也是操作,也是方法,这个吃是你的动作,也就是人类具有的方法,如果反过来,鱼吃人

茴香豆的“茴”有几种写法?单例模式你知道有几种写法?

点点圈 提交于 2019-12-02 17:52:59
茴香豆的“茴”字有几种写法? 有一回对我说道,“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做掌柜的时候,写账要用。”我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是草头底下一个来回的回字么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……茴字有四样写法,你知道么? 面试中会问到单例模式,选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。这里讲解8种常用的写法,下次遇到面试官 可以直接甩到他面前 !但切忌生搬硬套,去记“茴香豆的写法”。 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 实现思路 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称)。 8种写法 1.饿汉式一 优点:这种写法比较简单,静态常量,就是在类装载的时候就完成实例化。避免了线程同步问题。 缺点

Spring 源码阅读之 深入理解 finishBeanFactoryInitialization

寵の児 提交于 2019-12-02 16:56:41
源码入口 上篇博文中我们看到了将Spring环境中的 BeanPostProcessor找出来,添加到BeanFactory中的beanPostProcessors中,统一维护,本片博文继续往下拓展,看下Spring如何实例化bean,以及如何实现在bean的实例化通过各种各样的后置处理器完成bean的增强 所以本次的程序入口是 AbstractApplicationContext 中的 finishBeanFactoryInitialization(beanFactory); ,源码如下,主要做了如下几件事 protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { // Initialize conversion service for this context. // 为上下文初始化类型转换器 if (beanFactory.containsBean(CONVERSION_SERVICE_BEAN_NAME) && beanFactory.isTypeMatch(CONVERSION_SERVICE_BEAN_NAME, ConversionService.class)) { beanFactory.setConversionService(

Java学习路线-2:面向对象-类

时光总嘲笑我的痴心妄想 提交于 2019-12-02 12:48:56
2、面向对象简介 Java语言最大特点:面向对象编程设计 面向过程:C语言,面对一个问题的解决方案 面向对象:C++/Java,模块化设计,进行重用配置,考虑标准 1、面向对象三个主要特征: 封装性:内部操作对外部不可见 继承性:已有结构的基础上继续进行功能扩充 多态性:是在继承性的基础上扩充而来的概念,指类型的转换处理 2、面向对象开发三个步骤: OOA:面向对象分析 OOD:面向对象设计 OOP:面向对象编程 3、类与对象 类:对某一类事物共性的抽象 对象:描述一个具体的产物 类是一个模型,对象是类可以使用的实例 先有类再有对象 类的组成: 成员属性Field 简称属性 操作方法Method 对象的行为 4、类与对象的定义及使用 Java中,类是一个独立的结构体 属性就是变量 方法就是可以重复执行的代码 // 定义类 class Person { // 定义属性 String name ; // 引用数据类型 默认值 null int age ; // 基础数据类型 默认值 0 // 定义方法 public void tell ( ) { System . out . println ( "姓名:" + this . name + " 年龄:" + this . age ) ; } public static void main ( String [ ] args ) {

python面向对象:”方法“的定义和使用

不羁岁月 提交于 2019-12-02 08:55:37
(1)类中定义的函数,称作:方法 (2)类外定义的函数,称作:全局函数 方法使用注意点: (1)方法的第一个参数必须是:self,而且不能省略 (2)不过“方法”在调用时,不用提供self参数 (3)方法调用前,必须先实例化“类”,实例化方式:类名 加”()",例如:my() (4)整体进行一个单位的缩进,表示其属于类体重的内容 例如: class ex : #class定义一个类,类名:example def walk ( self ) : #定义一个walk方法,让类具有”散步“的能力 print ( "散步:take a walk" ) def say ( self , x ) : #定义一个say方法,让类具有”说话“的能力 print ( x ) ai = ex ( ) #实例化类(因为调用类中的方法,必须先实例化) ai . walk ( ) #执行散步指令,self不用提供 y = "可以说话:i kan speak" ai . say ( y ) #执行说话指令,self在调用时,不用提供 问题2:参数实例化类 class exm : def __init__ ( self , x , y = 0 ) : #初始化函数,使用内嵌函数:__init__(),进行初始化,具有两个初始化变量:x、y self . x = x self . y = y def sum (

简单工厂模式、工厂模式和抽象工厂模式区别及优缺点

你说的曾经没有我的故事 提交于 2019-12-02 08:36:30
各位小伙伴好,今天给大家主要介绍一下简单工厂模式、工厂模式和抽象工厂模式的区别及各自的优缺点。 (本文实现语言为Python3) 【前言】 众所周知今天所讲的内容是设计模式的一类;对于设计模式这个概念,我想首先请大家问问自己: 1、什么是设计模式 2、我们为什么要了解并学习设计模式? 从我上学的时候我相信大家跟我一样也接触过设计模式的课程,当时可能懵懵懂懂只是知其然,当时还会想明明可以直接写出来为什么要搞成这样的形式,我就算学会了它到底什么时候能用呢?一系列的问题...Emm算了到时候再想想(lazy)。随着实践的不断增多,现在我想可以对这些问题有个初步的回答了:   1、在我看来,设计模式外在看 是经过前人不断实践总结出的针对某些指定场景极其好用的一种代码结构设计模板 ;内在看其实是一种 设计思想 (即为什么他们会这么想,这样想较之其他方法有什么好处)。当我们真正的理解设计思想的时候,就可能会在面对问题和场景时自然而然的灵活运用到多种设计模式,而不是单一的刻板结构。   2、在工程化的开发中,需求往往是会不断变化的,这也是让很多开发人员及其烦躁的地方,所以才会有开发与产品的亲密关系。 设计模式就是为了抵御外部需求变化产生的 。 设计模式应符合开闭原则( 类、模块和函数等应该对扩展开放,对修改关闭。 )一个好的设计在之后的开发中,包括发生重大需求变化的时候