Tomcat常用配置

2018-06-20
阅读 2 分钟
2.3k
reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序。

Java的Lambda表达式

2018-06-16
阅读 3 分钟
1.8k
Java的Lambda表达式 1. 什么是Lambda表达式 简单的说,Lambda表达式就是匿名方法。Lambda表达式让程序员能够使用更加简洁的代码,但是同样也使代码的可读性比较差。 Lambda表达式也叫做匿名方法或者闭包。 2. 和匿名内部类做对比 Lambda是匿名方法,这个时候我们会想想到匿名内部类,我们来回想一下匿名内部类的用法,比...

mysql之group_concat函数

2018-06-14
阅读 5 分钟
2.1k
mysql之group_concat函数 在介绍GROUP_CONCAT之前,我们先来看看concat()函数和concat_ws()函数。 先准备一个测试数据库: {代码...} concat()函数 concat()函数的功能是将多个字符连接成一个字符串。 语法: concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。 {代码...

Java排序之归并排序

2018-06-06
阅读 3 分钟
3.3k
归并排序的算法是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,则成为二路合并。对于一个原始的待排序数列,往往可以通过分割的方法来归结为多路合并排序。

Java排序之计数排序

2018-06-04
阅读 1 分钟
2.2k
计数排序适用于有明确范围的数组,比如给定一个数组,且知道所有值得范围是[m,n]。这个时候可以使用一个n-m+1长度的数组,待排序的数组就可以散在这个数组上,数组的值就是当前值的个数,再经过一次遍历展开,得到的数组就有序了。

Fork/Join框架

2018-06-03
阅读 3 分钟
2.3k
Fork/Join框架是java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果得到大任务结果的框架。Fork指的就是把一个大任务分割成若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。

Java设计模式之观察者模式

2018-06-02
阅读 3 分钟
3k
一直想写一篇学习观察者模式的总结没有契机,今天学习阻塞队列的原理时候看到在实现生产者消费者的时候用到了通知模式,就是所谓的观察者模式,正好顺便整理一下。

Java锁优化

2018-06-02
阅读 3 分钟
2.2k
应用程序在并发环境下会产生很多问题,通常情况下,我们可以通过加锁来解决多线程对临界资源的访问问题。但是加锁往往会成为系统的瓶颈,因为加锁和释放锁会涉及到与操作系统的交互,会有很大的性能问题。那么这个时候基于锁的优化手段就显得很重要了。

Java整型计算

2018-06-02
阅读 2 分钟
1.7k
今天做LeetCode看到一道题,翻转整型,其中一行代码if ((newResult - tail) / 10 != result)表示超出范围就会有损失,有点不太明白,正好之前复习过原码,反码,补码这些,研究了半天,写个总结。接下来从两个问题入门看计算机内部是如何计算的。

Java线程池

2018-06-02
阅读 6 分钟
3.7k
系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互,这个时候使用线程池可以提升性能,尤其是需要创建大量声明周期很短暂的线程时。Java中的线程池是运用场景最多的并发框架。

TCP/IP协议入门

2018-05-30
阅读 4 分钟
2.9k
Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议。它是网络通信的一套协议集合。

AtomicInteger原理

2018-05-27
阅读 4 分钟
2.8k
AtomicInteger的原理 java的并发原子包里面提供了很多可以进行原子操作的类,比如: AtomicInteger AtomicBoolean AtomicLong AtomicReference 等等,一共分为四类:原子更新基本类型(3个)、原子更新数组、原子更新引用和原子更新属性(字段)。、提供这些原子类的目的就是为了解决基本类型操作的非原子性导致在多线程...

微服务架构入门

2018-05-24
阅读 4 分钟
5.5k
微服务是一种架构风格,一个大型的复杂软件由一个或多个微服务组成。系统中每个微服务都可以被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成任务。在所有情况下,每个任务代表这一个小的业务能力。

HTTP协议入门

2018-05-23
阅读 3 分钟
3.5k
HTTP协议是Hypertext Transfer Protocol超文本传输协议的缩写。HTTP协议属于应用层协议,它构建在TCP和IP协议之上,处于TCP/IP体系架构中的顶端,使用TCP/IP协议来传输数据。这样一来它就不必处理下层协议间诸如丢包补发、握手及数据的分段和重新组装等。

HTTP错误码和出现场景

2018-05-23
阅读 2 分钟
3.3k
当发布的服务不支持当前请求形式的时候就会报405错误。比如上面这个错误是由于我通过Spring Boot发布了的服务是post的形式,而我请求的方式是get。

SpringBoot入门

2018-05-23
阅读 7 分钟
2.5k
spring boot是一种全新的Java web框架,目的是简化Spring应用的初始搭建和开发过程,让开发者写更少的配置,程序更快的启动和运行,致力于成为快速开发应用领域的领导者。

HTTP_POST请求的数据格式

2018-05-23
阅读 7 分钟
6.1k
HTTP_POST请求的数据格式 在HTTP的请求头中,可以使用Content-type来指定不同格式的请求信息。 Content-type的类型 常见的媒体格式类型:     text/html : HTML格式     text/plain :纯文本格式           text/xml :  XML格式     image/gif :gif图片格式         image/jpeg :jpg图片格式      image/png:png图...

Java设计模式之职责链模式

2018-05-20
阅读 4 分钟
6.3k
前几天复习java的异常处理时,接触到了责任链模式。在企业级应用中,从前台发过来的请求在后台抛出异常,异常处理的设计一般会用到责任链模式,比如sql异常并不会直接抛出给前台,而是经过一系列的处理和再封装,抛给前台一个用户可识别的异常信息。

Zookeeper选举原理

2018-05-19
阅读 2 分钟
5.2k
作为一个分布式应用程序协调服务,在大型网站中,其本身也是集群部署的,安装zookeeper的时候最好是单数节点,因为要选举。Zookeeper的leader节点是集群工作的核心,用来更新并保证leader和server具有相同的系统状态,Follower服务器是Leader的跟随者,用于接收客户端的请求并向客户端返回结果,在选举过程中参与投票。...

Java异常简介

2018-05-19
阅读 3 分钟
1.7k
Checked异常都是可以被处理的异常,在程序中必须显式地处理Checked异常,如果没有处理,那么编译就会报错。而Runtime异常可以不被显式的处理;

mysql索引

2018-05-13
阅读 2 分钟
1.4k
mysql索引 索引是什么 索引其实也是一张表,该表保存了主键与索引字段,并指向实体表的记录。 索引的好处: 创建索引可以大大提高系统的性能。 加快mysql的检索速度,这也是建立索引的主要原因; 通过创建唯一性索引,可以保证数据库中每条记录的唯一性; 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特...

mysql事务以及隔离级别

2018-05-13
阅读 7 分钟
2.3k
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

浅谈Java序列化

2018-05-12
阅读 6 分钟
2.3k
Java序列化 什么是序列化? 序列化是将一个对象的状态,各属性的值序列化保存起来,然后在合适的时候通过反序列化获得。 Java的序列化是将一个对象表示成字节序列,该字节序列包括了对象的数据,有关对象的类型信息和存储在对象中的数据类型。 说白了,就是将对象保存起来,就跟保存字符串数据一样,用到的时候再取出来...

数字全排列

2018-05-07
阅读 2 分钟
6.7k
数字全排列 问题描述 给一个不重复的数字数组,写一个程序,输出全排列。 比如给定数组: {代码...} 输出: {代码...} 解决思路 这个问题很经典,接下来尝试使用数学归纳法的思想来解决这个问题。 在中学的时候,我们就知道一个长度为n的数列有n!个排列。因为第一个数字有n种情况,第二个数字有n-1种情况,第三个数字有n...

Java的NIO

2018-05-05
阅读 6 分钟
2k
BufferedReader有一个特征,就是读取输入流中的数据时,如果没有读到有效数据,程序将在此处阻塞该线程的执行(使用InputStream的read方法从流中读取数据时,也有这样的特性),java.io下面的输入输出流都是阻塞式的。不仅如此,传统的输入输出流都是通过字节的移动来处理的,及时我们不直接去处理字节流,单底层的实现...

MyBatis入门介绍

2018-05-05
阅读 6 分钟
1.9k
MyBatis是支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs映射成数据库中的记录。

Java设计模式之代理模式

2018-05-02
阅读 6 分钟
1.5k
代理模式是一种对象结构型的模式,主要为其他对象提供一种代理以控制对这个对象的访问。简单点说就是你访问一个对象并不是直接的访问它,而是通过一个代理简介访问,那么这个代理就可以在访问对象之前或之后做一些定制化的操作,比如校验入参,打印日志什么的。Spring AOP就是一个代理模式的典型应用。

Spring入门IOC和AOP学习笔记

2018-05-02
阅读 4 分钟
2.4k
Spring有两个核心接口:BeanFactory和ApplicationContext,ApplicationContext是BeanFactory的子接口、它们都可以代表Spring容器,Spring容器是生成Bean实例的工厂,并管理容器中的Bean。建议优先使用ApplicationContext。除非对内存非常关键的应用再考虑使用BeanFactory。当系统创建ApplicationContext的时候,默认会预...

MyBatis入门使用

2018-05-02
阅读 9 分钟
3.1k
MyBatis是支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs映射成数据库中的记录。

Linux文件系统结构

2018-04-22
阅读 3 分钟
2.2k
Linux文件系统结构 Linux系统中我们比较常用的目录是: home :用户目录 usr : Unix Software Resource 安装的软件目录 本文介绍一下Linux根目录的结构以及作用: /bin bin是Binary(二进制)的缩写, 这个目录存放着最经常使用的命令。 /boot 这个目录主要放置开机会使用到的文件,包括 Linux 内核文件以及开机菜单与开...