java
jason15919882622
这个作者很懒,什么都没留下…
展开
-
深入探讨 Java 类加载器
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用转载 2017-08-27 08:54:51 · 187 阅读 · 0 评论 -
springMvc 拦截器
5.1、处理器拦截器简介Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 5.1.1、常见应用场景1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。2、权限检查:如登录检测,进入处理器转载 2018-01-03 22:22:57 · 140 阅读 · 0 评论 -
通过ApplicationContextAware加载Spring上下文环境
项目用到了ApplicationContextAware,通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法。我们在ApplicationContextAware的实现类中,就可以通过这个上下文环境对象得到Spring容器中的Bean。使用方法如下:1.实现Applicatio转载 2018-01-03 23:06:44 · 227 阅读 · 0 评论 -
Spring系列之IOC
【回顾】 通过前两篇博客,我们对Spring框架的理论和应用都有了一定的了解,也知道了Spring的核心是IOC,本篇博客将对IOC作进一步的学习。 Spring帮助我们更简单地实现功能,在于它的使用,可以让我们不必自己去创建所需要的对象实例,它包揽了此项工作,给我们提供了一个容器。我们只需要把东西放进去就好。 【问题】 IOC(In转载 2018-01-03 23:52:46 · 132 阅读 · 0 评论 -
mybatis
xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-con原创 2018-01-23 02:54:07 · 168 阅读 · 0 评论 -
深入浅出spring IOC 概念
spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控制什么?依赖注入和控制反转是一样的概念吗?接触新的知识,小编的脑袋中全是大大的问号,不过没有关系,今天这篇博文,小编主要来简单的介绍一下在spring IOC中依赖注入的方法。依赖注入和控制反原创 2018-01-07 20:34:35 · 510 阅读 · 0 评论 -
Spring注解标签详解@Autowired @Qualifier等
@Autowiredspring2.1中允许用户通过@Autowired注解对Bean的属性变量.属性Setter方法以及构造函数进行标注,配合AutowiredAnnotationBeanProcessor完成Bean的自动配置。使用@Autowired注释进行byType注入。在applicationContext.xml中加入:[xml] view pla转载 2018-01-07 21:13:27 · 220 阅读 · 0 评论 -
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定转载 2018-01-07 22:33:02 · 130 阅读 · 0 评论 -
JDK 1.7 java.io 源码学习之AutoCloseable接口和try-with-resources语法
为了更好的梳理java.io内类之间的关系,梳理了一下包内类之间的关系,现从接口开始阅读。从AutoCloaseable接口开始,这个接口并不在java.io包内,但是它是Closeable接口的父接口,故直接归这边说明了。AutoCloseable接口非常简单,只定义了一个close方法:public interface AutoCloseable { void close() Exce...转载 2018-03-04 10:02:23 · 168 阅读 · 0 评论 -
nio图
原创 2018-03-04 11:07:48 · 262 阅读 · 0 评论 -
深入理解Java Stream流水线
前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并行又是怎么做到的,线程个数是多少?本节我们学习Stream流水线的原理,这是Stream实现的关键所在。首先回顾一下容器执行Lambda表达式的方式,以ArrayList.forEach()方法为例,...转载 2018-02-25 21:36:46 · 169 阅读 · 0 评论 -
epoll 与 java nio调优
Epoll是Linux内核为处理大批量句柄而作了改进的poll。要使用epoll只需要这三个系统调用:epoll_create(2), epoll_ctl(2), epoll_wait(2)。它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),在2.6内核中得到广泛应用,例如LightHttpd JD...转载 2018-03-05 02:40:19 · 336 阅读 · 0 评论 -
Spring的两种代理JDK和CGLIB的区别浅谈
一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP转载 2018-01-03 22:12:50 · 161 阅读 · 0 评论 -
spring AOP是什么?你都拿它做什么?
spring AOP是什么?你都拿它做什么? 对于最近博主最近写博客的兴致大发,我也在思考:为什么而写博客?在互联网时代,无论你是牛人大咖,还是小白菜鸟,都有发表自己看法的权利。无论你是对的还是错的,都会在这个平台上找到答案。所以,我会尽可能去写自己感兴趣的内容,无论正面或者负面的消息,都尽可能回复我的每一位读者。即使自己只有一个读者,也会坚持写下去转载 2018-01-02 21:34:53 · 352 阅读 · 0 评论 -
深入理解 Java 垃圾回收机制
垃圾回收机制的意义java 语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存; 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据转载 2017-09-02 09:46:38 · 169 阅读 · 0 评论 -
jvm 命令
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决。所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命转载 2017-09-27 20:54:28 · 279 阅读 · 0 评论 -
深入理解Java类加载器(1)
1 基本信息 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性都有很大帮助转载 2017-10-07 20:42:48 · 201 阅读 · 0 评论 -
深入理解Java类加载器(2)
1 线程上下文类加载器 线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoad转载 2017-10-07 20:49:11 · 222 阅读 · 0 评论 -
IO,BIO,NIO,AIO
IO基础知识回顾java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。java.nio(Java non-blocking IO),nio 是non-blocking的简称,是jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolea转载 2017-10-27 04:23:38 · 202 阅读 · 0 评论 -
SSO系列之——同域下单点登录系统介绍
Single-Sign-On即单点登录,从一个页面登录,就可以访问其他互信系统,避免用户重新登录,例如登录了百度,则百度云等其他百度旗下其他网站均可免登录访问。在整个业务服务群中起到了辅助、集成的作用。 SSO体系结构客户端调用模块认证中心认证中心是SSO系统的核心,它先验证用户是否有权限访问系统,如果有让用户访问系统资源;如果没有,提供一个登录原创 2017-10-22 12:41:30 · 246 阅读 · 0 评论 -
使用cookie实现跨域系统单点登录
单点登录作为目前比较流行的服务于企业业务整合的解决方案之一, 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。实现这一需求的思路和技术各有千秋.一、SSO 的主要实现方式有:1、 共享 cookies基于共享同域的 cookie 是 Web 刚开始阶段时使用的一种方式,它利用浏览同域名之间自动传递 cookies 机制,实现两个域名之间系统原创 2017-10-22 11:28:24 · 831 阅读 · 0 评论 -
rpc的理解。
rpc是远程过程调用,你可以这么理解,就是在另外一台服务器上有一段代码(函数),你可以通过网络远程调用它。用什么协议(http,tcp,udp…),传输什么数据格式(json,xml,二进制…)你都可以自己定义。原创 2017-11-09 00:51:32 · 210 阅读 · 0 评论 -
开发闲聊(二)--eclipse工程目录中不显示红叉(代码错误提示)
没留意设置了什么地方导致eclipse目录不能显示代码编译不过所提示的红叉。后来找到原因并做如下修改错误提示就出来了。(@2@)项目上右键-->properties-->java compiler-->building-->enable project specific setting-->build path problems-->选中abort Incomplete build p转载 2017-12-24 10:44:54 · 270 阅读 · 0 评论 -
部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi
Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL 严重: Error configuring application listener of class org.springframework.web.context.Conte转载 2017-12-24 19:58:24 · 166 阅读 · 0 评论 -
深入分析Java ClassLoader原理
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在转载 2017-12-31 23:14:55 · 129 阅读 · 0 评论 -
java中hashCode()方法的作用
hashcode方法返回该对象的哈希码值。 hashCode()方法可以用来来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的位置,Map在搜索一个对象的时候先通过hashCode()找到相应的位置,然后再根据equals()方法判断这个位置上的对象与当前要插入的对象是不是同一个。所以,Java对于eqauls方法和hashCode方法是这样规定的:原创 2018-01-01 13:45:57 · 222 阅读 · 0 评论 -
查看JVM参数及值的命令行工具
1.-XX:+PrintFlagsInitial参数显示所有可设置参数及默认值,可结合-XX:+PrintFlagsInitial与-XX:+PrintFlagsFinal对比设置前、设置后的差异,方便知道对那些参数做了调整。2.-XX:+PrintFlagsFinal参数可以获取到所有可设置参数及值(手动设置之后的值),这个参数只能使用在Jdk6 update 21以上版本(包括该版本)。-XX...原创 2018-04-14 22:12:31 · 1606 阅读 · 0 评论