![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识
sky_jiangcheng
这个作者很懒,什么都没留下…
展开
-
kerberos认证原理---讲的非常细致,易懂
前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去。后来想想原因有以下两点:对于一个没有完全不了解Kerberos的人来说,Kerberos的整个Authentication过程确实不好理解——一会儿以这个Key进行加密、一会儿又要以另一个Key进行加密,确实很容易把人给弄晕;另一方面是我讲解方式有问题...转载 2018-07-16 19:29:06 · 35875 阅读 · 14 评论 -
java与C++的区别
“作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。” 然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C++的一些重要特征。 (1) 最大的...转载 2018-08-22 14:14:21 · 131 阅读 · 0 评论 -
Java三种代理模式:静态代理、动态代理和cglib代理
转载原文地址:https://segmentfault.com/a/1190000011291179#articleHeader5一、代理模式介绍代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和...转载 2018-08-27 16:47:56 · 98 阅读 · 0 评论 -
鱼还是熊掌:浅谈多进程多线程的选择
原文:http://blog.csdn.net/lishenglong666/article/details/8557215 最原始的博主我没有找到,只能把我从何处转的此篇博文的链接发出来。感觉这篇博文写的很棒,特此转载了 鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,...转载 2018-08-23 15:55:56 · 165 阅读 · 0 评论 -
Java使用消息队列还是直接使用线程池ExecutorService异步处理?
原文地址:https://segmentfault.com/q/1010000011097493说说这两种的区别,各自适合什么场景?用线程池ExecutorService异步处理:我理解ExecutorService其实也是内部使用了队列(如LinkedBlockingQueue),所以从设计上,其实和使用中间价的消息队列是差不多一致的。只是这里应用服务器既充当生产者又充当消费者,也是消息...转载 2018-08-24 20:48:12 · 10254 阅读 · 0 评论 -
spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
原文地址:https://www.cnblogs.com/bingshu/p/7819932.html今天学习一下RESTFul api拦截 大概有三种方式过滤器(Filter) :可以拿到原始的http请求,但是拿不到你请求的控制器和请求控制器中的方法的信息。拦截器(Interceptor):可以拿到你请求的控制器和方法,却拿不到请求方法的参数。...转载 2018-09-11 20:09:31 · 403 阅读 · 0 评论 -
Java 内存模型 JMM 浅析
原文地址:http://www.codeceo.com/article/javamemorymodel.htmlJMM简介Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后者指堆、方法区、线程栈等内存区域)。并发编程有多种风格,...转载 2018-09-13 14:16:00 · 162 阅读 · 0 评论 -
mybatis配置mapper是判断使用if还是choose when
mybatis使用mapper配置条件语句sql时根据条件判断使用不同的参数和处理方式,常常用到 if 和 choose when,容易弄混淆,为什么有了if还要使用choose when呢,我觉得如果if还有else标签的话就不需要choose when了。if和choose when的用法如下:一、if(通过“title”和“book”两个参数进行可选搜索):<select i...原创 2019-01-11 14:02:03 · 4495 阅读 · 0 评论 -
相互注入引发的StackOverflowError
平时工作StackOverflowError是很少出现的,今天写一个demo出现了,记录一下,应该算是一个典型的StackOverflowError。[DEBUG] 2018-08-08 14:52:19,159 method:org.springframework.beans.factory.xml.PluggableSchemaResolver.resolveEntity(Pluggab...原创 2018-08-08 15:10:17 · 1020 阅读 · 0 评论 -
使用aop写一个简单日志切片
有些项目代码因为逻辑比较简单日志就常常被忽略,但是真正调试起来才发现事情比想象中棘手,基本的日志记录是很重要的。在复习spring的aop原理的时候写了一个日志切片,可以用于记录基本的日志,代码如下:package com.jiangcheng.aspect;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.JoinPoi...原创 2018-08-10 15:27:45 · 1609 阅读 · 0 评论 -
SOA,Web Service,SOAP,REST,RPC,RMI,JMS的区别与联系
SOA面向服务的软件架构(Service Oriented Architecture)是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作它的基本设计原理是:服务提供了一个简单的接口,抽象了底层的复杂性,然后用户可以访问独立的服务,而不需要去了解服务底层平台实现。正因为SOA架构实现不依赖于技术,因此能够被各种不同的技术实现。例如:SOAPRPCRESTDCOMCORBAOPC...转载 2018-07-16 16:02:19 · 192 阅读 · 0 评论 -
Java中强大的format
Java中允许我们对指定的对象进行某种格式化,从而得到我们想要的格式化样式。Format首先介绍java.text包中的FormatForamt是一个抽象基类,其具体子类必须实现format(Object obj, StringBuffer toAppendTo, FieldPosition pos)和parseObject(String source, ParsePos...转载 2018-05-23 13:53:05 · 32629 阅读 · 0 评论 -
极简生成jar包
步骤1:准备java文件public class HelloWorld { public static void main(String args[]){ System.out.println("Hi,Hello World!"); }}步骤2:编译java文件获取class文件步骤3:对class文件进行打包步骤4,修改MANIFEST.MF,添加main-class步骤5,更新jar...原创 2018-04-21 14:51:48 · 260 阅读 · 0 评论 -
Java基础---内省、注解、类加载器
第一讲 内省引出JavaBean一、内省 1、内省对应的英文单词为IntroSpector,英文意思是检查、视察、体检之意,对于程序即对内部进行检查,了解更多的底层细节。 2、内省的作用:主要针对JavaBean进行操作。 二、JavaBean1、简述: 1)JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用...转载 2018-05-15 15:14:54 · 213 阅读 · 0 评论 -
A Brief Introduction to REST
You may or may not be aware that there is debate going on about the “right” way to implement heterogeneous application-to-application communication: While the current mainstream clearly focuses on web...转载 2018-06-09 15:45:10 · 380 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldExceptio
关于使用aspectj出现的问题,当需要使用@Aspect标签的时候,需要添加aspectj的依赖:<!--使用AspectJ方式注解需要相应的包--> <dependency> <groupId>org.aspectj</groupId> <artifactId>as...原创 2018-08-09 14:10:32 · 1882 阅读 · 0 评论 -
ERROR: JDWP Unable to get JNI 1.2 environment
调试代码时突然出现这个error,最终结果是这是一个没有解决的bughttps://bugs.java.com/bugdatabase/view_bug.do?bug_id=6476706JDK-6476706 : Error AGENT_ERROR_NO_JNI_ENV printed sometimes to console when JVM finishes The fol...原创 2018-05-14 20:29:48 · 413 阅读 · 0 评论 -
jvm 内存dump、gc查看、线程死锁,jmap、jstack、jstat
1. jstat 这个命令对于查看Jvm的堆栈信息很有用。能够查看eden,survivor,old,perm等heap的capacity,utility信息 对于查看系统是不是有能存泄漏以及参数设置是否合理有不错的意义2. jstack 这个是用来查看jvm当前的thread dump的。可以看到当前Jvm里面的线程状况。 这个对于查找blocked...转载 2018-03-11 02:20:15 · 406 阅读 · 0 评论 -
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。 int a = 129; ...转载 2018-07-16 15:50:55 · 218 阅读 · 0 评论