构造器

python yaml用法

安稳与你 提交于 2019-12-14 00:18:24
YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。YAML类似于XML,但是语法比XML简单得多,对于转化成数组或可以hash的数据时是很简单有效的。 安装 pip install pyyaml 一、PyYaml 1、load() :返回一个对象 我们先创建一个yml文件,config.yml: name: Tom Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name1: Jenny Smith age1: 12 读取yml文件: import yaml f = open(r'E:\AutomaticTest\Test_Framework\config\config.yml') y = yaml.load(f) print (y) 结果: {'name': 'Tom Smith', 'age': 37, 'spouse': {'name': 'Jane Smith', 'age': 25}, 'children': [{'name': 'Jimmy Smith', 'age': 15}, {'name1': 'Jenny Smith', 'age1': 12}]} 2、load_all()生成一个迭代器

JAVA学期总结

喜你入骨 提交于 2019-12-13 22:42:48
JAVA学期总结 主要内容: (1)、基础语法:Java关键字,标识符,类型转换、直接量、变量、循环语句(if,for,switch)、方法、运算符、递归。 (2)、面向对象编程(重中之重):面向对象设计思想、对象与内存(重点)、方法重载、对象创建使用、abstrsct的使用、final的使用、super的使用、static的使用、package和import的运用、对象 转型、多态、抽象类、接口等基本的知识点。 (3)、异常处理:try{...}catch(Exception e){...}、异常的分类、方法异常的抛出、自定义异常。 (4)、数组:基本的数组操作、二维数组的使用。 (5)、常用类:String类、StringBuffer类、Math类、File类等等。 (6)、文件与数据流:输入流 java.io.InputStream 、输出流 java.io.OutputStream,带缓存的输入流和输出流BufferedOutputStream、 BufferedOutputStream、带缓存的读写器BufferedWreter BufferReader (7)、线程:线程的两种实现方式,Synchronized关键字——同步,死锁等问题。 (8)、JDBC,MySQL,记事本操作。 2. Java 继承 Java面对对象具有三大特性: 继承

Java多线程进阶—— J.U.C之synchronizer框架:CyclicBarrier

流过昼夜 提交于 2019-12-13 21:12:11
一、CyclicBarrier简介 CyclicBarrier 是一个辅助同步器类,在JDK1.5时随着J.U.C一起引入。 这个类的功能和我们之前介绍的 CountDownLatch 有些类似。我们知道, CountDownLatch 是一个倒数计数器,在计数器不为0时,所有调用await的线程都会等待,当计数器降为0,线程才会继续执行,且计数器一旦变为0,就不能再重置了。 CyclicBarrier 可以认为是一个栅栏,栅栏的作用是什么?就是阻挡前行。 顾名思义,CyclicBarrier是一个可以循环使用的栅栏,它做的事情就是: 让线程到达栅栏时被阻塞(调用await方法),直到到达栅栏的线程数满足指定数量要求时,栅栏才会打开放行。 这其实有点像军训报数,报数总人数满足教官认为的总数时,教官才会安排后面的训练。 可以看下面这个图来理解下: 一共4个线程A、B、C、D,它们到达栅栏的顺序可能各不相同。当A、B、C到达栅栏后,由于没有满足总数【4】的要求,所以会一直等待,当线程D到达后,栅栏才会放行。 从CyclicBarrier的构造器,我们也可以看出关于这个类的一些端倪,CyclicBarrier有两个构造器: 构造器一: 这个构造器的参数 parties 就是之前说的需要满足的计数总数。 构造器二: 这个构造器稍微特殊一些,除了指定了计数总数外,传入了一个 Runnable

[Spring]~@Autowired(注入依赖)

不想你离开。 提交于 2019-12-13 12:07:51
使用@Autowired注解警告Field injection is not recommended 在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 大部分被警告的代码都是不严谨的地方,所以我深入了解了一下。 被警告的代码如下: @ Autowired UserDao userDao ; 警告内容是 Field injection is not recommended 意思就是使用变量依赖注入的方式是不被推荐的。 使用idea解决策略是这样的: Always use constructor based dependency injection in your beans . Always use assertions for mandatory dependencies 意思就是总是使用构造器的方式强制注入。 依赖注入有三种方式: 变量(filed)注入 构造器注入 set方法注入 先各自看一下实现方式 变量(filed)注入 @ Autowired UserDao userDao ; 构造器注入 final UserDao userDao; @Autowired public UserServiceImpl (UserDao userDao) { this .userDao = userDao; } set方法注入 private

Spring核心详解!!!

元气小坏坏 提交于 2019-12-12 23:17:32
原创作者点击跳转 Spring核心详解!!! Spring出现的原因? Spring出现的原因 解除耦合 软件开发的开闭原则:通过多态实现,要么子类重写父类,要么增加方法 提高抽象层次; 提高抽象层次的方法 把子类对象赋给父类对象进行使用的动态多态 注入Injection:某一个类想要什属性,通过set方法给他 就叫注入 依赖注入 Depenency Injection =DI 有set就能活 没有就错误 配置文件(反射) Spring如何解除耦合 解耦合:首先解除逻辑耦合 mvc模式第一次解除了逻辑耦合 spring的IOC是进行深度解耦 日志:用来保持程序的健壮性,就是程序的运行记录 代理需要在jdk1.5以上版本使用 jdk代理是基于反射的没有反射就没有办法通用 调用代理类的的任何方法,都会执行到invoke方法 代理是模式 代理机制其实真正的代理的是方法 代理:proxy 代理的本质就是原产品不动,不做任何改变 要增值 要包装 代理分类: 一.静态代理:门面模式或装饰模式 缺点:需要为每一个被代理的方法都写一个代理方法,修改的时候特别值复杂,不灵活 二.动态代理 1.jdk动态代理:缺点:要想代理对象,被代理对象必须有接口,否侧不能代理 2.CGLIB代理:优点:在被代理类没有接口的情况下也能够被代理,实际就是为当前类生成一个子类 代理类和被代理类都需要实现同一个接口

它山之玉可以重构:身份证号(第四天)

依然范特西╮ 提交于 2019-12-11 18:19:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 可以说,到了今天,我才真正能开始做我想要的重构/改进。之前,只是补充测试,调整了一下结构。 是的,非常的缓慢,这居然被称为“敏捷”!? 你说奇怪不奇怪? 还好,这种节奏适合我这种大龄青年,合用就好,关它是风花还是雪月。 ==》 测试覆盖 上一次漏掉了最重要的异步,测试覆盖: 本以为会秀一个漂亮的100%覆盖率的测试出来,人算不如天算,居然有一个方法是75%! (本文版权属于© 2012 - 2013 予沁安 ) 恩,无效的生日没有测试。 很简单,就增加一个测试而已,就不在这罗嗦了。直接贴覆盖率,显摆一下。 再显摆一下代码质量参数: 复杂度 最大的就是构造器了。可维护指标还是不错的 76分。 ==>优化改进:属性,静态设值 和其他 零零碎碎的改进,你可以如前面一样,基于一个一个测试纵向改,也可以全部改完在一起测试,没有太大关系,前者是严格的测试驱动。但是,我觉得不需太学术化,关键是,你的任务足够小,能在今天完成,那就是合适。 1。 把所有的信息块改成属性方式,因为,一个是Java与C#的区别,第二,把原代码的缓冲生日的逻辑做到极致(极限编程?呵),一开始就缓冲(构造器中) public string CardNumber { get;private set; } public string AddressCode

2019.12.11 java程序中几种常见的异常以及出现此异常的原因

☆樱花仙子☆ 提交于 2019-12-11 15:26:58
1、java.lang.NullpointerException(空指针异常) 原因:这个异常经常遇到,异常的原因是程序中有空指针,即程序中调用了未经初始化的对象或者是不存在的对象。 经常出现在创建对象,调用数组这些代码中,比如对象未经初始化,或者图片创建时的路径错误等等。对数组代码 中出现空指针,是把数组的初始化和数组元素的初始化搞混淆了。数组的初始化是对数组分配空间,而数组元素的 初始化,是给数组中的元素赋初始值 2、 java.lang.ClassNotFoundException(指定的类不存在) 原因:当试图将一个String类型数据转换为指定的数字类型,但该字符串不满足数值型数据的要求时,就抛出这个异 常。例如将String类型的数据"123456"转换为数值型数据时,是可以转换的的。但是如果String类型的数据中包含了 非数字型的字符,如123*56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理 3、java.lang.ClassNotFoundExceptio(指定的类不存在) 原因:是因为类的名称和路径不正确,通常都是程序试图通过字符串来加载某个类的时候可能会引发异常。例如: 调用Class.forName()、或者调用ClassLoad的finaSystemClass()、或者是LoadClass()时出现异常 4、java.lang

【JavaSE】反射

天涯浪子 提交于 2019-12-11 04:38:56
1.、概述 Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。 Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制 好处: 可以在程序运行过程中,操作这些对象。 可以解耦,提高程序的可扩展性。 2、功能 在运行时判断任意的一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时获取泛型信息 在运行时调用任意一个对象的成员变量和方法 在运行时处理注解 生成动态代理 优点: 可以实现动态创建对象和编译,体现出很大的灵活性 Public final Class getClass(); 以上的方法返回值 获取Class对象的多种方式 //对象.getClass():getClass()方法在Object类中定义着。 //多用于对象的获取字节码的方式 person . getClass ( ) ; //Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 //多用于配置文件,将类名定义在配置文件中。读取文件,加载类 Class . forName ( ) ; /

面试官会问关于spring的哪些问题?

依然范特西╮ 提交于 2019-12-10 23:49:01
什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开 容器:Spring 包含并管理应用中对象的生命周期和配置 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA) 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常 Spring由哪些模块组成? 以下是Spring 框架的基本模块: Core module Bean module Context module Expression Language module JDBC module ORM module OXM

反射Reflection

有些话、适合烂在心里 提交于 2019-12-10 23:11:38
反射Reflection 一、静态语言和动态语言 动态语言 是一类在运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python等。 静态语言 与动态语言相对应的,运行时结构不可变的语言就是静态语言 :如Java、C、C++。 Java不是动态语言,但Java可以称之为“准动态语言” 。即Java有一定的动态性,我们可以 利用反射机制获得类似动态语言 的特性。Java的动态性让编程的时候更加灵活! 二、反射概述 1.Reflection(反射): 是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并 能直接操作任意对象的内部属性及方法 。 Class c = Class.forName(“java.lang.String”) 加载完类之后,在堆内存的方法区中就产生了一个 Class类型的对象(一个类只有一个Class对象) ,这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射 2.Java反射机制提供的功能 A