junit

互联网 Java 工程师面试题(Java 面试题六)

一笑奈何 提交于 2020-05-03 19:40:45
Java IO 和 NIO 的面试题 IO 是 Java 面试中一个非常重要的点。你应该很好掌握 Java IO,NIO,NIO2 以 及与操作系统,磁盘 IO 相关的基础知识。下面是 Java IO 中经常问的问题。 66、在我 Java 程序中,我有三个 socket,我需要多少个线 程来处理? 67、Java 中怎么创建 ByteBuffer? byte[] bytes = new byte[10]; ByteBuffer buf = ByteBuffer.wrap(bytes); 68、Java 中,怎么读写 ByteBuffer ? 69、Java 采用的是大端还是小端? 70、ByteBuffer 中的字节序是什么? 71、Java 中,直接缓冲区与非直接缓冲器有什么区别? 答案 http:// javarevisited.blogspot.sg /2015/08/difference-between-direct-nondirect-mapped-bytebuffer-nio-java.html 72、Java 中的内存映射缓存区是什么? 答案 http:// javarevisited.blogspot.sg /2012/01/memorymapped-file-and-io-in-j ava.html 73、socket 选项 TCP NO DELAY 是指什么?

面向对象(OO)第二阶段学习总结

旧时模样 提交于 2020-05-03 15:53:22
0.前言 此阶段总共进行三次大作业,其中第一次作业中的第一题,水文数据校验及处理中,遇到较大的难题,第一次接触正则表达式,编码过程中显得难度特别大。第二次作业同样也是对于一元多项式求导中对单项的正则校验遇到难题。第三次作业总体难度不大,值得高兴的是,求素数的加分题也写出来了。总而言之,这阶段的作业比上一阶段的难度要大,花的时间也多。 1.作业过程总结 第一次作业,主要涉及到继承与正则表达式的知识,第二次作业则为继承与多态,正则表达式,第三次作业以继承、多态性使用方法以及接口的应用为主。三次作业都涉及到图形继承,从简单的继承到继承与多态,再到接口。以上过程均在一道题里面实现,需求增加,用到的方法也相应增加。三次作业的知识点关联密切,由浅到深。 我理解的面向对象的封装性为隐藏对象的属性,对方法实现过程并不关注,对外仅提供接口,也就是说,我们只关注这个类的功能有哪些,并不关注这些功能是如何实现的。这点在作业过程中有明显的感受,比如在主方法中,我们只关注对象,对于对象的一些属性不去关注,就好比一只兔子,它有四条腿,能吃萝卜等,兔子就是我们封装的类。继承性,就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。这点在图形继承里面体现的淋漓尽致,子类圆 、三角形等继承父类图形(Shape),可以继承方法,属性

Java自定义注解的定义与使用

ⅰ亾dé卋堺 提交于 2020-05-02 19:17:03
跟踪代码的依赖性,实现代替配置文件的功能。比较常见的是Spring等框架中的基于注解配置。 登陆、权限拦截、日志处理,以及各种Java框架,如Spring,Hibernate,JUnit 。提到注解就不能不说反射,Java自定义注解是通过运行时靠反射获取注解。实际开发中,例如我们要获取某个方法的调用日志,可以通过AOP(动态代理机制)给方法添加切面,通过反射来获取方法包含的注解,如果包含日志注解,就进行日志记录。 注解是Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate, Jersey ,Spring。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或运行期有效。 在注解诞生之前,程序的元数据存在的形式仅限于java注释或javadoc,但注解可以提供更多功能,它不仅包含元数据,还能作用于运行期,注解解析器能够使用注解决定处理流程。举个例子,在 Jersey webservice 中,我们在一个方法上添加了PATH注解和URI字符串,在运行期,jersey会对其进行解析,并决定作用于指定URI模式的方法。 在Java中创建自定义注解 创建自定义注解与编写接口很相似,除了它的接口关键字前有个@符号。我们可以在注解中定义方法,先来看个例子,之后我们会继续讨论它的特性。 package com

基于spring与mockito单元测试Mock对象注入

ε祈祈猫儿з 提交于 2020-05-02 18:17:29
转载:http://www.blogjava.net/qileilove/archive/2014/03/07/410713.html 1.关键词    单元测试 、spring、mockito    2.概述   单元测试目前已经成为项目中保证代码质量的一种必要方法,对于一些不易构造或者不易获取的对象通过mock的方式进行测试是一种很有效的处理办法。在基于spring的mock测试中,mock对象获取和使用的便利性可以提升单元测试代码的质量。    3.实现原理   Mock对象的注入使用注解和反射,对象注入依赖spring框架支持junit4提供的TestExcutionListeners监听器对象,在监听器中将mock对象注入到单元测试类中。    4.新建对象方式代码 private IAccessServiceaccessService = Mockito.mock(IAccessService.class); @BeforeClass public static void beforeClass(){ // 构造并注入Mock对象ICmsProxyService sceneConfigService.setAccessService(accessService); }    5.监听器方式代码   5.1 实现监听器  

java

南笙酒味 提交于 2020-05-02 18:17:07
网络程序,难点在线程 反射 reflect 实用 类对象 来执行反射操作 反射获得一个类的定义信息 反射创建对象 反射调用成员变量, 方法 方法 获得类对象的三种方式 A.class Class.forName("完整类名"); a1.getClass(); 类对象的方法 c.getPackage().getName(); c.getName(); c.getSimpleName(); 获得成员变量的定义信息 getFields(); 得到可见的成员变量,即能访问的, 包括继承来的 getDeclaredFields(); 本类定义的所有变量, 包括私有变量, 不包括继承的 getField(变量名); 得到单个可见的的成员变量 getDeclaredField(变量名); 获得构造方法的定义信息 getConstructors(); 获得可见的构造方法, getDeclaredConstructors(); 获得所有的构造方法 getConstructor(参数类型列表); 获得单个可见的的构造方法 get Declared Constructor(int.class,String.class); 获得方法的定义信息 getMethods(); // 可见的方法, 包括继承的方法 getDeclaredMethods(); // 本类定义的方法, 包括私有的方法,不包括继承的方法

Java 注解指导手册 – 终极向导

若如初见. 提交于 2020-05-02 18:16:29
原文链接 原文作者:Dani Buiza 译者:Toien Liu 校对:深海 编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它。 我们已经在Java Code Geeks提供了丰富的教程, 如 Creating Your Own Java Annotations , Java Annotations Tutorial with Custom Annotation 和 Java Annotations: Explored & Explained . 我们也有些文章是关于注解在不同类库中的应用,包括 Make your Spring Security @Secured annotations more DRY 和 Java Annotations & A Real World Spring Example . 现在,是时候汇总这些和注解相关的信息到一篇文章了,祝大家阅读愉快。 目录 什么是注解 介绍 消费器 注解语法和注解元素 在什么地方使用 使用案例 内建注解 Java 8 与注解 自定义注解 提取注解 注解集成 使用注解的知名类库 小结 下载 资料 在这篇文章中我们将阐述什么是Java注解,它们如何工作,怎么使用它们。 我们将揭开Java注解的面纱,包括内建注解或称元注解,还将讨论Java8中与之相关的的新特性。 最后,我们将实现自定义的注解

SpringBoot Junit Maven JaCoCo

老子叫甜甜 提交于 2020-05-02 16:53:54
写一下最近写单体测试的一些笔记. SrpingBoot的测试用例: @RunWith(SpringJUnit4ClassRunner. class ) @SpringBootTest(classes = {ApiApplication. class }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 如果需要加其他配置, 可以使用SrpingBoot的Configuration, 来引入其他资源, 比如本次就引入了excel作为配置文件. 之所以选择excel,是因为exce可以作为嵌入式数据库来用,编辑数据方便灵活,没有其他嵌入数据库可以与之相比, 可以加入vba编程, 种种好处.本想用MongDB, 还是算了,高冷难用. ------------- mvn 命令行启动 mvn -Dtest=ApiTestSuit -DfailIfNoTests= false test mvn test mvn -Dtest=TestControllerTest#test -DfailIfNoTests= false test 启动目录在root pom所在目录.-Dtest=xxxx的时候, 会去每个子pom所在项目的test中找xxxx的测试, 会报错, 所以需要加上-DfailIfNoTests=false ----

麻省理工18年春软件构造课程阅读09“避免调试”

大兔子大兔子 提交于 2020-05-02 16:45:40
本文内容来自 MIT_6.031_sp18: Software Construction 课程的Readings部分,采用 CC BY-SA 4.0 协议。 由于我们学校(哈工大)大二软件构造课程的大部分素材取自此,也是推荐的阅读材料之一,于是打算做一些翻译工作,自己学习的同时也能帮到一些懒得看英文的朋友。另外,该课程的阅读资料中有许多练习题,但是没有标准答案,所给出的答案均为译者所写,有错误的地方还请指出。 译者: 李秋豪 审校: V1.0 Sun Mar 25 13:32:29 CST 2018 本次课程的目标 如何避开调试(debugging) 当你不得不进行调试时,如何确保它不会太复杂 第一道防御:让Bug无法产生 最好的防御策略就是在设计上让Bug无法产生。 我们之前已经谈到过 静态检查 。静态检查能够在编译期发现很多bug。 我们也看到了一些 动态检查 的例子。例如,Java会通过动态检查让数组越界访问的bug不可能存在。如果你试着越界访问一个数组或列表,Java就会在运行时报错。在一些更老的语言中,例如C和C++,这样的访问是允许的——可能会导致bug和 安全漏洞 . 不可变性 也是另一种防止bug的设计策略。在创建时,一个不可变类型的对象的值就确定了,接下来可以保证不会发生改变。 字符串是一种不可变类型。你无法通过String内置的方法更改它内部存储的字符。因此

使用Mongodb实现打卡签到系统

一世执手 提交于 2020-05-02 14:16:35
使用excel文件导入数据,整合mongodb实现打卡签到系统 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 主要技术:SpringBoot、Mongodb SpringBoot版本:2.2.6 实现步骤如下: 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional> true </optional> </dependency> <!-- excel工具 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId>

Springboot登录拦截器

那年仲夏 提交于 2020-05-02 09:00:37
Springboot登录拦截器 和 swagger框架接口自动生成html文档 使用开发工具:IDEA 实现步骤如下 1.需导入的依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--swagger api 依赖 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version> 2.9 . 2 </version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version> 2.9 . 2 <