`
文章列表
  分享一下关于Java网络通讯方面的内容. 下载地址:https://github.com/mldn/echo   Java基础知识:BIO、NIO、AIO三者的技术实现,以及彼此之间的区别   Netty:TCP 程序实现为主,代码的核心:Echo程序模型,通过网络实现一个基础的Echo。 一.BIO模型   同步阻塞IO处理   在程序的开发之中Java里面最小的处理单元就是线程,也就是说每一个线程可以进行IO的处理,在处理之中,该线程无法进行任何的其他操作。   多线程是不可能无限制进行创造的,所以需要去考虑堆线程进行有效的个数控制。   如果产生的线程过多,那么直接的 ...
  join()是Thread类的一个方法。根据jdk文档的定义: public final void join()throws InterruptedException: Waits for this thread to die. join()方法的作用,是等待这个线程结束   但显然,这样的定义并不清晰。个人认为"Java 7 Concurrency Cookbo ...
   在Tomcat中有四种部署Web应用的方式,简要的概括分别是:   (1)利用Tomcat自动部署   (2)利用控制台进行部署   (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml)   (4)手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用 一.利用Tomcat自动部署   利用Tomcat自动部署方式是最简单的、最常用的方式。若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\*,只要将一个Web应用的We ...
一.转换关键字   长整型转换为时间类型的关键字:FROM_UNIXTIME(长整型,format)。   时间类型转换为长整型的关键字:UNIX_TIMESTAMP(时间类型)。   二.转换实例   长整型转换为时间类型例子: select FROM_UNIXTIME(1531692180042/1000,'%Y-%m-%d'); 这里要注意:mysql数据库中的长整型,比Java中的长整型少了后面的毫秒数,而我例子中的长整型是在java里面转换的,多了秒后面的毫秒,所以要除以1000,要不然我这条sql的结果就是一个null。   如果长整型是在数据库里的,就无需除以10 ...
  在这里是用grade构建工具,基于SpringBoot开发的一个小小的项目实例代码,不排除有问题,但SpringBoot的开发方式大体通过这个小项目可知一二。   项目实例功能简单,仅包括用户管理、图书管理及用户下单购买书,还有基于mockito的单元测试案例。   项目工程代码详见附件《user_springboot_grade_demo.zip》。
  Disruptor是什么可以阅读《高性能线程间队列DISRUPTOR简介》一文,下面重点讲讲在实际应用中如何去使用Disruptor。         项目结构如下: CreateReqEvent.java package com.bijian.study; import com.lmax.disruptor.EventFactory; public class CreateReqEvent { private String reqStr; public String getReqStr() { return reqStr; ...
  使用List.contains(Object object)方法判断ArrayList是否包含一个元素对象(针对于对象的属性值相同,但对象地址不同的情况),如果没有重写List<E>的元素对象Object中的equals方法,默认如下: @Override public boolean equals(Object o) { // TODO Auto-generated method stub return super.equals(o); }   将导致contains方法始终返回false。   查看ArrayList的contains方法的源码如下: ...
  虽然前面两篇文章详细阐述了文件上传,但网上这篇文章还是比较清晰明了,且针对文件超出大小有专门的处理配置和显示页面,特也记录一下。 一.首先是web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> & ...
  上一文《SpringMVC上传文件的三种方式》中,我们知道有三种方式可以实现文件的上传,其中,使用Spring MVC框架可以做到这一点,因为Spring MVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包。   下面将继续和大家介绍使用Spring MVC框架来实现文件的上传和下载,本文将做一个项目案例来完整的使用Spring MVC框架实现文件的上传和下载。  一.文件上传概述   文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/fo ...
  项目结构如下所示:   upload.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title> ...
  最近用到了MyBatis配置多数据源,原以为简单配置下就行了,实际操作后发现还是要费些事的,这里记录下,以作备忘。不多废话,直接上代码,后面会有简单的实现介绍。一.log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Configuration> <Configuration status="info" monitorInterval="5"> <Appenders> ...
        在现存的表上存在索引,但此索引并不是唯一索引,但实际上它不会重复,基于业务场景需要将其改为唯一索引。 1.删除原索引 alter table t_table_name drop index idx_order_id; 2.创建唯一索引 alter table t_table_name add unique(order_id);  
一.通过注释实现切面编程 工程结构如下: 1.切面类Log.java,前置通知和后置通知以及环绕通知都在这里配置 package com.bijian.study.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Aft ...
一.Java 整体的运行结构以及与 JVM 的关系   ClassLoader的在关键是告诉你,我要进行类加载,而在进行类加载的时候,就一定有一个正常的环境属性CLASSPATH,没有CLASSPATH就无法找到我们的目录所在,这样程序才会跑到JVM中解释运行。   而JVM到底有什么组成结构呢?首先有一个执行引擎,它需要一个本地方法接口,通过本地方法接口调用本地一些资源,比如多线程、磁盘、内存分配等等。本地方法说的再简单一点就是JNI,这个JNI在整个过程里面,它要去调用一个所谓的本地方法库。本地方法库是什么?是由各个操作系统自已定义的一些内容,比如我们现在做一个简单举例,对于JD ...
一.前言 1.常规技术:Spring系统、ORM组件、服务支持;   数据表的CRUD处理(重复且大量的编写),这种开发好像不是开发的感觉。 2.未来的开发人才到底该具备哪些技能—架构师   a.可以完成项目,同时可以很好的沟通;   b.掌握各种常规的开发技术,并且掌握一些服务组件的使用(需要有好的运维);   c.良好的代码设计能力 —— 代码重用与标准设定;   d.非常清楚底层通讯机制,并且可以根据实际的业务需求,进行底层通讯协议的定义; 3.网络通讯的核心思想:请求-回应   网络七层模型: 应用层、表示层、会话层、传输层(数据段)、网络层(数据包)、数据链路层( ...
Global site tag (gtag.js) - Google Analytics