自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

愿天下程序员少加一点班,多赚一点钱

  • 博客(132)
  • 收藏
  • 关注

原创 程序员词典(命名大全)

程序员词典“计算机科学只存在两个难题:缓存失效和命名。” ——Phil KarIton在我们编写代码时,常常面对命名困难问题(不是指命名规范,而是指一个贴切的变量或函数名),其实只要留意,就会发现很多优秀的开源代码或api接口有大量供我们参考的代码名词,可积累起来供平时工作使用。代码名词汉语衍生词index索引indexOf(),lastIndexOf(),getIndex()length长度getLength()bounds区域,边界,范围checkB

2021-07-07 12:29:45 1977

原创 Maven四(多模块项目)

Maven—多模块项目面对一个较复杂的项目时,我们可以将其拆分为不同的子模块,以降低复杂度,提高代码的复用性和维护性,Maven的多模块管理,便能达到这一目的。一.创建父工程在父工程中能实现项目信息的统一管理,子模块公共依赖管理(父工程的依赖可传递到子模块),项目发布管理等。二.创建子模块创建子模块时,选择Maven Module,父工程已引用的依赖不必再次引用。我们分别创建一个co...

2019-09-13 08:36:18 203

原创 Maven三(私服搭建)

Maven—私服搭建一.下载安装在一个公司内部往往会有一个Maven私服用于jar版本管理,Maven私服用得较多的系统是nexus,其下载地址:https://download.sonatype.com/nexus/3/latest-win64.zip, 下载解压后,便可启动nexuss,也可下载war版nexus,在tomcat中启动。启动后nexus,在浏览器中输入http://loca...

2019-09-08 11:10:13 336

原创 Maven二(依赖管理)

Maven—依赖管理依赖管理是Maven一个最基本也最重要的一个功能,其中涉及到pom.xml文件,中央库,远程库,本地库,依赖机制等,下面我们将对Maven依赖管理进行详细介绍。一.pom.xml文件每个Maven工程都会自动生成一个pom.xml文件,pom.xml里面包含了项目信息,项目所需的jar包,插件,部署等信息。在下面的示例中,groupId表示项目组Id,artifactId...

2019-09-04 22:53:01 204

原创 Maven一(安装)

Maven—安装Maven是Apache旗下用于java项目管理的工具,使用Maven可以实现项目模块管理,jar包依赖管理,自动部署等功能。一.Maven安装1.Maven需要JDK的支持,所以第一步需要安装JDK,并设置好JAVA_HOME和Path。2.在http://maven.apache.org/download.cgi 下载Maven并解压(Maven是绿色版,不需要安装)。...

2019-08-28 22:34:04 118

原创 架构设计—分层

架构设计—分层一.模式描述分层是一种常见的设计模式,比如操作系统就是一个很好的分层设计,在开发应用软件时,我们不必关心设备驱动程序,CUP指令集,文件管理,内存管理的实现,更不用了解芯片的各种逻辑门等。再比如网络的七层协议等。这这些分层设计将给我们带来如下好处:1.在无需过多了解其他层次的基础上,可以将某一层作为一个有机整体来理解,如:无线了解以太网的工作细节,便可在TCP上构建FTP服务。...

2019-08-18 14:40:46 775

原创 java在Linux平台与串口通信

java在Linux平台于串口通信一.概述java在Linux平台于串口通信可使用RXTXcomm,RXTXcomm也可用于Windows平台,下载地址:http://users.frii.com/jarvi/rxtx/index.html二.示例1.将librxtxSerial.so放入lib642.新建java工程,引入RXTXcomm.jar3.代码如下: public cla...

2019-08-01 22:22:27 3367 4

原创 java在Linux平台调用标签打印机

java在Linux平台调用标签打印机一.概述Linux平台java调用标签打印机使用了开源框架cups4j,github下载地址:https://github.com/harwey/cups4j。 使用cups4j必须在电脑开启cups服务,且安装标签打印机驱动的情况下,其原理是通过连接cups服务调用打印打印功能,下面我们以兄弟打印机为例,演示linux平台java调用打印机功能。二.示...

2019-08-01 22:07:03 3279

原创 java在Linux平台调用摄像头

java在Linux平台调用摄像头一.概述java调用摄像头的框架有javacv,jmf,webcam等,这三个框架都可用于windows和linux平台,个人更喜欢javacv,因为其功能更强大。二.Shiro示例1.新建maven项目,并引入依赖包: <dependencies> <dependency> <groupId>org.by...

2019-08-01 21:40:34 1156

翻译 Reactor 与 Proactor

Reactor 与 Proactor 比较一.概述系统I/O可以被阻断,或非阻塞同步,或异步非阻塞。阻塞I/O意味着在操作完成之前,系统不会将控制权返回给调用者,导致调用者被阻塞,并且在此期间无法执行任何其他任务。最重要的是,在等待I/O完成时,调用程序线程不能重用于其他请求处理,因此在此期间形成了资源的浪费。例如:在套接字中调用read()时如果缓冲区为空,则在阻塞模式下对套接字的操作将不会...

2019-06-07 10:01:19 888

翻译 Spring @Scheduled

Spring @Scheduled 通过@Scheduled实现任务调度有两种方式,一直是XML配置方式,一种是注解方式,下面分别是两种方式的示例。1.XML配置方式BookApp.javaimport org.springframework.scheduling.annotation.Scheduled;public class BookApp { public void cle...

2019-06-03 18:22:32 538

翻译 Spring @Component,@Service,@Repository,@Controller

Spring @Component,@Service,@Repository,@Controller1.@Component@Component在类级别使用,使类成为一个组件。这些类可通过类路径扫描进行自动检测。在java配置中,@ComponentScan用于自动检测组件,在spring应用程序上下文XML中,component-scan标记用于通过类路径进行自动检测。@Component具...

2019-06-03 17:51:53 494

翻译 Spring Bean Autowire(自动装配)

Spring Bean Autowire(自动装配)1.Autowire byNamespring容器在XML配置中查找bean,其名称与类属性名称相同。如果在我们的XML配置中有多个具有不同bean名称的相同类的bean,则自动装配不会发生冲突,并将匹配的bean名称与类属性名称一起使用。在我们的示例中找到用作bean的类。Address.javapublic class Address...

2019-06-03 17:22:25 2824

翻译 Spring Bean生命周期

Spring Bean生命周期一.概述在spring bean生命周期中,涉及初始化和销毁​​回调。在bean生命周期中也会调用不同的spring bean感知类。一旦依赖注入完成,就会执行初始化回调方法。它们的目的是检查已在bean属性中设置的值,执行任何自定义初始化或在原始bean上提供包装等。一旦初始化回调完成,就可以使用bean了。当IoC容器即将删除bean时,执行销毁回调方法。它们...

2019-06-03 16:17:26 662

原创 Spring Boot Swagger

Spring Boot Swagger1.创建maven项目新建项目并引进jar包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifact...

2019-06-02 13:09:44 92

原创 Spring Boot restful

Spring Boot Resrfu1.创建maven项目新建项目并引进jar包 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...

2019-05-27 23:42:44 260

翻译 Shiro六(与Spring Boot集成)

Shiro—与Spring Boot集成一.创建maven工程并加入依赖包:<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version&gt...

2019-05-25 22:12:28 100

翻译 5Shiro五(Session)

Shiro—Session一.获取SessionSession通过与当前Subject获得:Subject currentUser = SecurityUtils.getSubject();Session session = currentUser.getSession();session.setAttribute("someKey", someValue);Subject.getS...

2019-05-25 21:48:04 162

翻译 Shiro四(授权)

Shiro—授权一.概述授权是指管理资源的访问,即控制谁可以访问什么。授权包括:是否允许用户查看此页面,编辑此数据,查看此按钮或打印到此打印机等。这些都决定了用户可以访问的内容。在Shiro中主要通过权限,角色和用户进行授权管理。1. 权限Shiro中的权限代表安全策略中的原子元素。它们基本上是关于行为的陈述,并明确表示可以在应用程序中完成的任务。格式良好的权限声明实质上描述了资源以及Su...

2019-05-24 22:07:18 109

翻译 Shiro三(身份认证)

Shiro—身份认证一.Authenticating SubjectsSubject的验证过程可以分解为三个步骤:生成Subject提交的凭证(token)提交主体和凭证进行身份​​验证。验证成功或失败。以下代码演示了Shiro的API如何反映这些步骤:1. 生成Subject提交的主体和凭证UsernamePasswordToken token = new UsernameP...

2019-05-24 08:50:10 142

翻译 Shiro二(架构)

Shiro—架构一.概述Shiro的架构有3个主要概念:Subject,SecurityManager和Realms,如图:Subject:Subject是当前正在执行的“用户”的安全性“视图”,“用户”这可以是一个人,它也可以代表第三方服务,守护进程帐户,cron作业或任何类似的东西,每个Subject实例都被绑定一个SecurityManager。当您与一个Subject进行交互时...

2019-05-23 23:35:20 124

翻译 Shiro一(入门)

Shiro—入门一.简介Shiro是一个安全方面的开源框架,主要用户-身份验证,授权,会话管理和加解密:身份验证:即用户登录,且具有rememberme等属性。授权:访问控制,即“谁”可以访问“什么”。会话管理:即使在非Web或EJB应用程序中,也可以管理特定用户的会话(Session)。密码:使用加密算法保护数据安全。二.Shiro示例1.新建maven项目,并引入依赖包:...

2019-05-23 22:00:52 77

转载 java内存优化

java内存优化一.概述Java通过GC隐式回收内存,当一个对象不再使用且没有活动线程访问它时,GC便会将其回收用作新的内存。但是GC虽然负责回收不再使用(无法访问)的内存,但它无法确定未使用的对象,因此,JVM虽然是自动收集垃圾,但仍然会存在内存泄漏的情况。下面是对java内存和性能优化的一些建议。二.java内存优化1.尽量不要使用静态变量在java程序中静态变量所占的内存一直都不会...

2019-04-14 15:20:07 809

原创 MyBatis三(读写操作)

MyBatis—读写操作一.insert在MyBatis中编写Insert语句时使用< insert>,代码如下:<mapper namespace="com.mybatis.demo"> <insert id="insert" parameterType ="com.mybatis.demo.User"> insert into tabuser (...

2019-03-19 21:57:40 163

原创 MyBatis二(xml配置)

Mybatis—XML配置一.数据库配置由于Mybatis需要与数据库通信,因此必须配置数据库的详细信息,代码如下:<configuration> <environments default = "development"> <environment id = "development"> <transacti...

2019-03-19 18:47:20 173

原创 MyBatis一(入门)

MyBatis—入门一.概述MyBatis是一个开源,轻量级的持久层框架,它自动化数据库与Java对象之间的映射。通过将SQL语句放在XML配置文件中,映射与应用程序逻辑分离。它抽象了几乎所有的JDBC代码,并减少了手动设置参数和检索结果的负担。并提供了一个与数据库交互的简单API,同时还支持自定义SQL,存储过程和高级映射。二.示例1.创建数据库配置文件在resources目录下创建m...

2019-03-19 18:46:52 163

原创 JDBC四(更新)

JDBC—更新一.执行更新语句JDBC执行更新的步骤更执行查询一样,首先需要创建连接和获取Statement实例,但是更新时调用的是executeUpdate,而不是executeQuery,执行完后会返回受影响的记录行数,代码如下:public static void main(String[] args) throws Exception { Class.forName("com.m...

2019-03-12 20:26:13 78

原创 JDBC三(查询)

JDBC—查询一.执行查询语句在执行查询语句前,需要创建数据库连接和Statement实例,然后调用executeQuery方法,查询结果会保存到ResultSet实例里面,代码如下:public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); Co...

2019-03-12 20:15:56 219

原创 JDBC二(数据库连接)

JDBC—数据库连接一.加载驱动:在打开与数据库的JDBC连接之前,需要加载数据库的驱动程序,驱动程序只需加载一次,不需要在每次打开连接之前都进行加载操作。且每个JDBC驱动都有对驱动程序类。如:mysql:Class.forName("com.mysql.jdbc.Driver");oracle:Class.forName("oracle.jdbc.driver.Oracl...

2019-03-12 20:15:29 181

原创 JDBC一(概述)

JDBC—概述一.简介JDBC是一套提供JAVA应用程序与数据库连接与通信的的接口,通过JDBC可以用JAVA程序对数据库进行增删改查等操作,且提供了一套标准的API,对MySQL,PostgreSQL,MS SQL Server,Oracle,H2等数据库都是相同的API。二.JDBC 包含以下核心内容1.JDBC驱动JDBC驱动程序用于连接到某个数据库。例如,MySQL驱动是mysq...

2019-03-11 21:19:07 283

转载 国外大神总结的10个Java编程技巧

1.把字符串常量放在前面通过把字符串常量放在比较函数equals比较项的左侧来防止偶然的 NullPointerException 从来都不是一个坏主意,就像这样:这是毫无疑问的,把一种表达式转换成另一种更好的表达式,并不会失去什么。只要我们的Options是真实存在的(Java 8中 Optional是对可以为空的对象进行的封装),不是吗?2.不要相信早期的JDK APIJava刚出现...

2019-01-28 14:34:42 186

原创 java集合四(Map)

java集合—Map一.概述Map表示键值对(key-value)的存储,Map不能存储重复的Key,即:每个Key对应一个value,且key和value都可以是对象。实现Map的类有ConcurrentHashMap,ConcurrentSkipListMap,EnumMap,HashMap,Hashtable,IdentityHashMap,LinkedHashMap,Propertie...

2019-01-27 14:53:54 146

原创 java集合三(Set)

java集合—Set一.概述Set表示无序的对象集合,且不允许元素重复,非线程安全。与List不同,Set不允许以任何顺序的方式访问Set的元素。有些Set基于它们的自然顺序对元素进行排序,但是Set接口本身没有提供这样的功能。实现Set的类有:ConcurrentSkipListSet,CopyOnWriteArraySet,EnumSet,HashSet,LinkedHashSet和Tre...

2019-01-27 10:49:27 126

原创 java集合二(List)

java集合—List一.概述List表示有序的对象集合。可以通过索引访问元素,或搜索列表中的元素,就像数组一样。实现List接口的类有:ArrayList,CopyOnWriteArrayList,LinkedList,Stack和Vector。一.ArrayListArrayList是最常用的List实现类,里面可以存放任何类型的元素,非线程安全,其内部通过数组实现,所以ArrayLi...

2019-01-27 09:45:07 172

原创 java集合一(概述)

java集合—概述Java 集合框架由接口和类组成,有助于处理不同类型的集合,例如列表,集合,映射,堆栈和队列等。这些集合类解决了许多非常常见的问题。如:添加,删除,更新,排序,搜索和更复杂算法的常见操作。集合API的核心接口如下:ListSetMapStackQueueDequeIteratorIterable1.ListList表示有序的对象集合。可以通过索引访问元素...

2019-01-21 21:56:27 132

转载 Kafka史上最详细原理总结

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Lin...

2019-01-17 12:29:32 144

原创 ActiveMQ

ActiveMQ一.概述ActiveMQ是Apache提供的一个消息代理,它完全实现了JMS API,并支持各种跨语言客户端和协议,如Java,C,C ++,C#,Ruby,Perl,Python等。这使得不同语言开发的不同应用程序之间的集成更容易。二.安装ActiveMQ官网下载地址:http://activemq.apache.org/download.html,提供了Windows和...

2019-01-17 12:16:06 234

原创 Netty二(Http服务器)

Netty—Http服务器一.简介Netty一个高性能IO工具包,主要用于开发HTTP服务器,HTTPS服务器,WebSocket服务器,TCP服务器,UDP服务器和在JVM管道。用Netty开发的服务器可单独运行(即:在main()函数里调用),不需要部署在类似tomcat的容器里。Netty使用单线程并发模型,并围绕非阻塞NIO设计,所以性能较高。二.http服务器示例public c...

2019-01-08 21:58:26 266

原创 Netty一(TCP服务器)

Netty—TCP服务器一.概述Netty一个高性能IO工具包,主要用于开发HTTP服务器,HTTPS服务器,WebSocket服务器,TCP服务器,UDP服务器和在JVM管道。用Netty开发的服务器可单独运行(即:在main()函数里调用),不需要部署在类似tomcat的容器里。Netty使用单线程并发模型,并围绕非阻塞NIO设计,所以性能较高。二.TCP服务器public class...

2019-01-08 21:57:55 5872

原创 JAVA NIO三(Buffer)

JAVA NIO—缓冲区(Buffer)一.概述NIO Channel读写时都是面向缓冲区,即:数据从Channel读入缓冲区,并从缓冲区写入Channel。缓冲区本质上是一个可以写入数据的内存块,此内存块包含在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用内存块。二.Buffered用法Buffer读写数据通常遵循以下四个步骤:将数据写入缓冲区调用buffer....

2019-01-05 14:59:12 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除