- 博客(46)
- 收藏
- 关注
原创 浏览器输入网址到显示经历了哪些过程
1 输入网址2 域名解析2.1 浏览器自身缓存(chrome://net-internals/#dns)2.2 操作系统自身的dns缓存2.3 读取本地的host文件2.4 浏览器发起一个DNS的系统调用(本地主控DNS服务器:宽带运营商服务器查看本身缓存)2.5 运营商服务器发起一个迭代DNS解析的请求(->根域.com服务器->i...
2019-08-27 21:48:00
346
原创 Linux命令
1.top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。2.df -hl查看磁盘占用情况3.lsof | grep deleted查一下即可知道是哪个进程。4.删日志文件的时候,注意当前是否正在写该文件,如果正在写入,删除文件是无效的5.通过lsof|grepdelete查看未成功删除的文件6.如果不想重启...
2019-08-21 14:41:55
173
原创 代码优化总结
代码优化总结避免在循环调用里面查sql,会降低代码运行效率 Sql优化数据库表建索引 重复代码抽离整合成方法 循环考虑降幂处理 两个list集合对象属性合并可以转成map用stream合并...
2019-08-21 14:40:39
142
原创 除了JVM运行时内存以外,还有什么区域可以用吗?
除了虚拟机运行时数据区以外,还有一部分内存也被频繁使用,他不是运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域,他就是——直接内存。直接内存的分配不受Java堆大小的限制,但是他还是会收到服务器总内存的影响。在JDK 1.4中引入的NIO中,引入了一种基于Channel和Buffer的I/O方式,他可以使用Native函数直接分配堆外内存,然后通过一个存储在Java堆中的Dire...
2019-08-21 14:19:28
341
原创 为什么 String 在 Java 中是 final 的?
1.想象字符串池没有使字符串不可变,它根本不可能,因为在字符串池的情况下,一个字符串对象/文字,例如 “Test” 已被许多参考变量引用,因此如果其中任何一个更改了值,其他参数将自动受到影响,即假设String A="Test";String B="Test";2.)由于 String 是不可变的,它可以安全地共享许多线程,这对于多线程编程非常重要. 并且避免了 Java 中的同步问题,不变性也...
2019-08-21 14:18:26
376
原创 快速排序(通俗易懂)
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比...
2018-08-31 09:43:49
269
原创 redis——持久化篇
众所周知,redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失。为了解决这个问题,redis提供了持久化功能——RDB和AOF。通俗的讲就是将内存中的数据写入硬盘中。 一、持久化之全量写入:RDB[redis@6381]$ more /usr/local...
2018-08-30 10:25:07
124
原创 Linux
Linux的基本命令服务器版的Linux安装完毕了,但没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统,那么下面我们就进行Linux的命令的学习。Linux命令成百上千,课程不能一一涉及,也没有必要一一涉及,根据我们程序员在日常工作中的需求,总结出如下几种供学习。目录切换命令window中通过图形化界面和鼠标可以任意切换需要进入的目录,...
2018-08-26 19:23:41
219
原创 SOLR
1.2 Solr安装1:安装 Tomcat,解压缩即可。2:解压 solr。3:把 solr 下的dist目录solr-4.10.3.war部署到 Tomcat\webapps下(去掉版本号)。4:启动 Tomcat解压缩 war 包5:把solr下example/lib/ext 目录下的所有的 jar 包,添加到 solr 的工程中(\WEB-INF\lib目录下)。6:...
2018-08-24 15:42:48
2050
原创 ActiveMQ
1.3.1下载官方网站下载:http://activemq.apache.org/1.3.2安装(Linux)将apache-activemq-5.12.0-bin.tar.gz 上传至服务器 解压此文件 tar zxvf apache-activemq-5.12.0-bin.tar.gz 为apache-activemq-5.12.0目录赋权 chm...
2018-08-24 14:58:32
730
原创 跨域解决方案CORS
下面我们就开始动手,让我们的购物车工程能够接收跨域请求(1)首先修改pinyougou-cart-web 的CartController.java的addGoodsToCartList方法,添加下面两句代码 response.setHeader("Access-Control-Allow-Origin", "http://localhost:9105"); response....
2018-08-20 10:18:19
480
原创 单点登录
1.3 CAS服务端部署Cas服务端其实就是一个war包。在资源\cas\source\cas-server-4.0.0-release\cas-server-4.0.0\modules目录下cas-server-webapp-4.0.0.war 将其改名为cas.war放入tomcat目录下的webapps下。启动tomcat自动解压war包。浏览器输入http://localho...
2018-08-17 21:16:52
1345
原创 短信工具类
package cn.itcast.sms;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;import com.aliyuncs.dysmsapi.mode...
2018-08-17 17:40:18
807
原创 Spring Boot 配置文件application.properties
#########COMMON SPRING BOOT PROPERTIES######========CORE PROPERTIES===========#SPRING CONFIG (ConfigFileApplicationListener) spring.config.name= # config file name (default to 'application')...
2018-08-17 17:33:03
139
原创 Spring Boot应用启动器
spring Boot应用启动器基本的一共有44种,具体如下:1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。2)spring-boot-starter-actuator 帮助监控和管理应用。3)spring-boot-starter-amqp 通过spring-rabbit来支持AMQP协议(Advanced Mes...
2018-08-17 17:31:41
104
原创 Freemarker整合spring
1.Freemarker的jar包2.创建整合spring的配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc...
2018-08-05 10:25:31
147
原创 Redis与memached的区别
传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.Memcached...
2018-08-04 12:20:14
808
原创 负载均衡的session共享
一、场景 当nginx做了负载均衡之后,同一个ip的url请求服务器的时候,负载均衡会根据每台服务器的权重等一些设置将请求转发到不同的服务器上去进行处理,这样的话针对一些带有状态请求的情况来说就是个很大的问题,因为是带有状态的请求就好比登陆状态一样,A用户登陆系统,负载均衡机制把A用户的登陆请求分发给了s1服务器,这个时候s1服务器上就会记录A用户登陆的session信息,登陆成功后,当A用...
2018-08-03 16:08:37
281
原创 高并发解决方案之一 ——负载均衡
1.什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡...
2018-08-02 18:51:54
215
原创 Java利用Redis实现消息队列
一、序列化 这里编写了一个java序列化的工具,主要是将对象转化为byte数组,和根据byte数组反序列化成java对象; 主要是用到了ByteArrayOutputStream和ByteArrayInputStream; 注意:每个需要序列化的对象都要实现Serializable接口;package Utils;import java.io.*;/** * Created by ...
2018-07-26 16:57:13
1668
原创 java的基本数据类型
1)四种整数类型(byte、short、int、long): byte:8 位,用于表示最小数据单位,如文件中数据,-128~127 short:16 位,很少用,-32768 ~ 32767 int:32 位、最常用,-2^31-1~2^31 (21 亿) long:64 位、次常用 注意事项: int i=5; // 5 叫直接量(或字面量),即 直接写出...
2018-07-22 08:05:51
97
原创 SpringMVC请求的时候是如何找到正确的Controller
目录前言 源码分析 重要接口介绍 SpringMVC初始化的时候做了什么 HandlerExecutionChain的获取 实例 资源文件映射 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-int...
2018-07-21 19:36:52
2315
原创 《Spring源码深度解析》学习笔记——Spring的整体架构与容器的基本实现
Spring的整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示这些模块被总结为以下几个部分: Core Container Core Container(核心容器)包含有Core、Beans、Context和Expression Language模块 Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特...
2018-07-17 18:47:21
460
原创 登录短信的解决方案
HTTP调用URL接口时, 参数值必须URL编码后再调用参数变量说明Gbk编码Urlhttp://gbk.sms.webchinese.cn/Utf-8编码Urlhttp://utf8.sms.webchinese.cn/Uid本站用户名(如您无本站用户名请先注册)[免费注册]Key注册时填写的接口秘钥(可到用户平台修改接口秘钥)[立刻修改]如需要加密参数,请把Key变量名改成KeyMD5,Key...
2018-07-15 21:51:47
1415
原创 request.getRequestDispatcher跳转了,日志也提示view(jsp)访问了,浏览器却没动静
AJAX 请求的时候,会将你返回的页面当成是数据使用 XMLHttpRequest.responseText 去接收。正确的做法应该是如果后台发现不满足登录成功的条件,返回一个不成功的标志给 AJAX(比如:{"login" : "failed"}),然后前端判断如果是这个标志,那么通过 window.location.href 跳转到你定义的 “/toLogin” 页面。form表单提交方式,A...
2018-07-15 18:42:51
857
原创 JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]
1、如何将java.util.Date转化为java.sql.Date?转化:java.sql.Date sd;java.util.Date ud;//initialize the ud such as ud = new java.util.Date();sd = new java.sql.Date(ud.getTime());2、如果要插入到数据库并且相应的字段为Date类型那么可以用Prepa...
2018-07-15 17:13:17
1413
原创 修改tomcat虚拟路径
1、修改Tomcat的server.xml文件<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve"
2018-07-15 16:15:15
206
原创 文件上传和下载
文件上传 前端界面代码<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML><html> <head> <title>文件上传</title> </head> <
2018-07-15 16:06:36
145
原创 关于HTTP 请求方式: GET和POST的比较的本质
什么是HTTP?超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。HTTP在客户端和服务器之间以request-responseprotocol(请求-回复协议)工作。GET方法:使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:/test/demo_form.jsp?name1=va...
2018-05-05 16:58:08
155
原创 Java 8 中的 Streams API 详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注...
2018-04-30 19:28:43
173
原创 java中设计模式详解
一、设计模式的分类 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式...
2018-04-30 16:12:25
239
原创 一个一百亿的计算器的实现
MyBigInteger.java import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Rocky on 14-3-26. */ public...
2018-04-30 10:24:25
237
原创 Java 集合转换(Object[]数组、List、Set、Map相互转换)
package com.example.test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; ...
2018-04-29 21:42:48
6800
原创 数据量极大时用什么排序方法比较好
1.普遍认为:当N很小时,快速排序慢,归并排序快 当N很大时,并且有序程度高时,快速排序最快 当N很大时,并且有序程序低时,堆排序最快快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;堆排序所需的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏情况。这两种排序都是不稳定的。若要求排序稳定,则可选用归并排序。先利用直接插入排序求得较长...
2018-04-27 15:22:50
13544
2
原创 生产者消费者模式-Java实现
生产消费者模型 生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图。 在日益发展的服务类型中,譬如注册用户这种服务,它可能解耦成好几种独立的服务(账号验证,邮箱验证码,手机短信码等)。它们作为消费者,等待用户输入数据,在前台数据提交之后会经...
2018-04-26 21:32:33
239
原创 Java并发编程:volatile关键字解析
一.内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在C...
2018-04-26 21:08:12
82
原创 Java中如何正确的终止线程
1、Java中API自带的stop()方法,来终止线程 查阅JDK,不难发现Thread提供了一个stop()方法,但是stop()方法是一个被废弃的方法。为什么stop()方法被废弃而不被使用呢?原因是stop()方法太过于暴力,会强行把执行一半的线程终止。这样会就不会保证线程的资源正确释放,通常是没有给与线程完成资源释放工作的机会,因此会导致程序工作在不确定的状态下。关于使用st...
2018-04-26 20:04:04
99
原创 hashmap详解
1、继承关系:java.lang.Objectjava.util.AbstractMap<K,V>java.util.HashMap<K,V>2、HashTable基于Map接口的实现,这一实现提供了所有的Map接口的实现,并且允许null值和null键。(HashMap类和HashTable大致上是一样的,除了有2点不同之处,即为HashMap是非同步的[线程不安全的]和...
2018-04-12 14:35:34
91
原创 线程安全和线程不安全
1.可以这样理解,加锁的就是安全的,不加锁的就是不安全的(感觉比较生动,不知道对不对,望指出)线程安全 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全 就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据2.到底是什么意思呢?如...
2018-04-09 11:32:51
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人