自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张锡凯的学习笔记

笨鸟先飞,记录点滴

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式Java应用系列文章-01

网络通信之协议在分布式java应用中,我们现在越来约需将传统的单体应用程序拆解为多应用程序。保证多应用程序可以运行得前提便是程序之间得正常通信,说到通信我们将引出本篇文章的核心-通信协议本篇将会介绍以下知识点:TCP/UDP-IPMulticastSocketTCP/UDP-IP1、英文含义:TCP(Transmission Control Protocol 传输控制协议...

2019-02-24 19:57:32 229

原创 Java的内存模型(1)

package com.zhang.thread.rammodel;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * @author zb * @version...

2018-12-28 15:59:52 179

转载 SSO 与 CAS 知识

丁香园F2E2017年11月07日阅读 11418前端需要了解的 SSO 与 CAS 知识不管是什么公司,只要产品数量大于一个,那么单点登录势必是绕不过去的一个问题。作为前端程序员,我们对其虽然接触不多,但适当的了解还是必要的。本文就来谈谈单点登录相关的问题。前置知识了解 SSO,最好具备以下知识。当然,如果不是特别熟,也不影响阅读。cookie及session浏览器同源策略及跨域了解登录系统的...

2018-12-28 15:50:21 407

转载 单点登录之CAS原理和实现

出处:https://blog.csdn.net/qq_24708791/article/details/78535565 </div> <div class="operating"> </div> </div&gt...

2018-12-28 15:47:26 287

原创 Hadoop学习笔记

详见:https://github.com/zhangbo512/mypro

2018-12-13 20:35:31 113

原创 volatile和syn那点的那点事

package com.zhang.thread;/** * 内存 :int num = 10; * 线程1: * 缓存:int mun = 10; * 线程2: * 缓存:int num = 10; * * 非volatitle 变量: * 线程1修改 num = 100; * * 内存 :int num = 10; * 线程1: * 缓...

2018-12-13 20:08:11 262

转载 Hadoop学习笔记(三)漫画解读HDFS读写原理

具体见下面链接:Hadoop学习笔记(三)漫画解读HDFS读写原理

2018-10-22 14:30:09 160

转载 常见的排序算法及java实现

来源:https://www.cnblogs.com/wangmingshun/p/5635292.html日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。以下常见算法的定义1. 插入排序:插入排序基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数...

2018-10-15 17:34:55 178

原创 并发编程的利于弊

俗话说:众人shi柴火焰高。意思是更多的人去做一件事,往往会去的更好的效果。在编程的世界里,这个道理依然走的通。只不过这里不再是人,而是线程。让更多的线程去做一件事,在大部分情况下往往有利于提高效率。也许有人此时会有一个想法:既然存在这样的道理,那我在我的程序中拼命的创建线程,是不是就意味的我的程序运行速度会随之而来的越来越快?答案当然是No的,这样做只能说你太Yong.第一个问题:上下...

2018-10-15 16:38:38 126

原创 JVM的类加载器

什么是类加载器?ClassLoader就是类加载器,这个回答是否机智?(鬼脸)言归正传:还记得在上一篇关于类加载机制的文章中,有一个步骤叫做加载,其中有一个动作就是“通过一个类的全限定名来加载描述此类的二进制流文件”。实现这个动作的代码就叫做类加载器类与类加载器两个描述类的二进制流文件相同,这两个类是否就一样?答案是:不一样判断两个类是否相同的前提是:描述类的二进制流文件相同,并且加载...

2018-10-15 16:01:26 119

原创 JVM的类加载机制

引用官方:虚拟机把描述类的数据从Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型叫做虚拟机的类加载机制。在详细介绍加载的每隔步骤之前,先来了解下总体步骤:加载验证准备解析初始化使用卸载从上面我们可以看出,一个类从加载到卸载总共会经历七个步骤。其中,验证、准备、解析三个步骤又被统称为连接。下面开始详细分析介绍这...

2018-10-05 23:21:31 154

原创 JAVA虚拟机的垃圾收集

java对象什么时候变成垃圾?java对象的实列都存放于jvm的堆区中,但是堆的内存空间是有限的。在空间不足的时候,便会发抛出内存溢出的异常(OutOfMemoryError),通常在遇到这种情况的时候,我们可以选择把堆空间的内存设置到更大,方法:第一种 环境myeclipse修改在菜单window->preferecces.在JDK对话框中输入-Xms512m -Xmx1024m这个...

2018-09-28 13:37:03 185

原创 SpringBoot的自动配置原理

1、属性配置类其实就是值对象注入的方式去配置一些Spring常用的配置,我们编写一个最简单的配置对象@ConfigurationProperties(prefix = "hello")//@Component //如果这里添加了注解那么在自动配置类的时候就不用添加@enableConfigurationProperties(HelloProperties.class)注解.public...

2018-07-25 08:53:35 284

原创 过滤器和拦截器

一、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存...

2018-07-25 08:49:13 232

原创 Java多线程编程学习笔记(一)

1. 什么是并发编程? 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。2. 并发编程的目的? 并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。 - 并发编程的挑战? 并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。并发编程往往会面临...

2018-05-17 15:02:27 211

原创 记录一个java对象从出生到死亡的全过程

话不多说,直接开干public class Persion implements Serializable { private Integer age; private String name; private String sex; private String address; //省略set/get方法}public class My_Main

2018-01-25 11:03:11 1208

原创 elasticSearch学习的一点心得

写在前面:因为是在实习期间接触的这个搜索引擎,所以关于引擎的管理、监控和部署本菜鸟一概未曾得到机会尝试。本篇也是完全基于应用层的尝试讲解。本文内容主要是基于java api对elasticSearch的一些操作,目录如下:创建对elasticSearch服务器的连接创建mapping对文档的增删查改根据实际情况构建一个跨字段实体搜索对搜索结果的分析以及调优1、创建Tra

2018-01-11 11:08:22 1210

原创 分苹果问题

问题:现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1到1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)解题之前补充一个知识点:现有1、2、4、8四个数,他们可以组成任意1到15的数字。所以有一个定理: 所以根据这个定理我们可以分析得出: 2的10次方为1024;2的9次方为512。1000介于512到102

2017-09-10 20:04:56 2073

原创 Hadoop在Unbunt环境下的伪分布模式搭建教程

所需要的工具虚拟机VMUnbuntu镜像:ubuntu-14.10-desktop-amd64(需要说明的是:目前14.10的Unbuntu官网已经停止维护)jdk:ubuntu-14.10-desktop-amd64 补充说明:有的时候在Ubuntu环境下下载东西比较慢,所以建议可以在虚拟机中建立一个共享文件,这样就可以在本机下载然后在虚拟机中使用了。1.搭建虚拟,教程见一下链接 htt

2017-09-09 16:21:28 451

原创 浅谈常见设计模式--单例模式 简单工厂模式

今题那站在这里和大家一起分享最近在一本书上看到的关于设计模式的内容,接下来要讲的设计模式有:单例模式简单工厂模式工厂方法和抽象工厂代理模式命令模式策略模式门面模式桥接模式观察者模式接下来详细介绍灭一种设计模式(注意:下面的讲解都是基于java语言)1.单例模式 定义:Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”java单例模式代码片段:

2016-11-13 17:04:33 6169

原创 简述安卓中的三级缓存机制

Android应用中联网加载并显示图片时,为了用户体验和节省流量,一定用到图片的缓存关于三级缓存的理解可以分为:内存缓存(物理空间的缓存)本地缓存(java对象的缓存)网络缓存 首先为大家介绍一个现在比较成熟应用也比较广泛的第三方开源的工具类 xUtils系列之BitmapUtils接下来我们将通过自己的代码为大家分析BitmapUtils实现图片加载等一系列工作的原理第一步:创建三

2016-10-28 19:24:11 745

转载 网站用户行为数据收集和分析方法

来源 为改善网站的可用性, 一般采用可用性工程方法, 其核心是以用户为中心的设计方法论(UCD)。综合介绍了目前国内外对于用户行为数据收集和分析方法所进行的研究, 各种方法的特点, 并介绍一些利用相应方法所开发出的工具实例, 使得建设的网站更加符合用户的需要, 以保障用户与网站之间沟通的顺畅。  随着In ternet 的不断发展, 各种各样的网站如雨后春笋般成倍增长, 各个商业网站之间的竞争越来

2016-10-25 23:07:15 9995

转载 MD5的使用和其相关

MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。 MD5

2016-10-25 22:21:59 2992

转载 安卓中的文件存储方式

本文来自:原文地址 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法。创建的存储文件保存在/data/data//files文件夹下 2.操作。 保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式。 读取文件内容:通过Context.openF

2016-10-24 22:09:22 539

原创 Android中的页面引导

首先贴一张效果图先来分析下这个界面的构成: ViewPager LinearLayout 两个主要的ViewGroup构成接下来贴出页面布局代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tool

2016-10-17 23:34:48 399

原创 Java中的反射(3)——在运行时使用反射分析实例化的对象

在上一篇我们学习了利用反射去分析一个类的能力,在这一篇我们将继续讲解利用反射去分析运行时的对象。我们都知道对象是类的实例化,因此在创建一个对象的时候我们一般都会为这个对象所属类的相应字段设置相应的值,如上一篇创建的Persion类,当我们想实例化一个Persion对象的时候都会这样做:Persion persion=new Persion(18,"张锡凯");//这里我们就为这个类的age字段和

2016-09-11 00:33:58 1289

原创 Java中的反射(2)——利用反射分析类的基本能力

接着上篇介绍了Class类的一些基本方法之后,我们再来介绍一下反射的基本应用class Persion{ public int age; private String name; public Persion(){ } public Persion(int age,String name){ this.age=age; this.name=name; }

2016-09-08 17:52:03 443

原创 Java中的反射(1)

首先介绍反射机制的功能:在运行中分析代码在运行中查看对象实现通用的数组操作代码利用Method对象,这个对象很像C++中的函数指针Class类: 学习反射即不得不接触一个新的类(Class类),在java运行时系统会为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应的方法执行。 对于每个类而言,JRE都为其保留了一个不

2016-09-08 17:03:19 262

转载 java 堆 栈 方法区的简单分析

本文来源:本文参考来源 JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区 基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object) 。方法的引用参数,在栈

2016-09-07 22:41:23 252

原创 QQ的粘性控件的实现原理

声明:本文资料来自于传智播客安卓52期 先来张效果图: 话不多说,线上代码,然后逐个分析自定义粘性控件public class GooView extends View { private static final String TAG = "TAG"; private Paint mPaint; public GooView(Context context) {

2016-09-06 12:49:02 493

原创 Android中的异步HttpClient框架

HttpClient简介:Httpclient核心架构设计 HttpClient框架jar包下载:HttpClient框架jar包下载 在这里我将介绍在Android中使用异步HttpClient框架实现简单登录功能:第一步:导入HttpClient框架,这个框架的jar包在网上可以找到。导入过程和导入其他的jar包类似第二步:编写登录界面;第三步:编写登陆界面对应的Activity;Activ

2016-09-05 22:53:06 398

原创 Java中所有类的超类Object

Object的地位 在Java中所有的类都继承于Object类,但不用在声明一个类时显示的extends ObjectObject中几个重要的方法:1.equals方法: 用于检测一个对象是否等于另外一个对象,即判断两个对象是否具有相同的引用.然而对于大多数类来说这种检测没有太大意义。在实际中用户更倾向与更具自己的标准来判断两个对象是否相等。例如:如果来年各个雇员的姓名 薪水和雇佣日期都一

2016-09-05 21:42:48 3961

原创 Java中的多态和动态绑定

先来一张图表明类Employee,Manager,Secretary,Programmer, Executive的继承关系 在java中有一个用来判断是否应该设计为继承关系的简单法则,这就是 “is-a”规则,它表明自雷的每个对象也是超类的对象。在上图中所示,每个Manager对象也是Employee对象,但相反,每个Employee对象并不是Manager对象。用代码表示

2016-09-05 13:30:55 472

原创 浅谈Java不同于C++的数组

数组的定义:数组是一种数据结构,用来存储同一类型的数值的集合。提供整型下标访问。1.声明数组变量和初始化数组: int[] a;//声明数组变量需要制定属组中数据的类型 a=new int[100];//初始化数组并制定数组大小,大小一旦指定便不可改变为数组赋值for(int i=0;i<100;i++){ a[i]=i;}2.增强for循环 增强for循环格式:

2016-09-04 23:40:23 279

原创 Bound服务之Messenger

在上一篇介绍了Bound服务之Binder.这一篇继续介绍Bound服务之Messenger.适用场景:如果你的服务需要与远程进程进行通信,那你可以使用一个 Messenger 来提供服务的接口。这种技术能让你无需使用AIDL就能进行进程间通信(IPC)。Messenger使用方法:1.服务实现一个Handler ,用于客户端每次调用时接收回调。2.此Handler用于创建一个Messenger对象

2016-09-04 20:38:24 241

转载 Bound服务之Binder

Bound服务的简介:bound服务是 Service 类的一种实现,它允许其它应用程序与其绑定并交互。为了让服务支持绑定,你必须实现 onBind() 回调方法。这个方法返回一个 IBinder 对象,此对象定义了客户端与服务进行交互时所需的编程接口。创建Bound服务基于扩Binder 如果你的服务只用于本地应用程序并且不需要跨进程工作,那你只要实现自己的 Binder 类即可,这样你的客

2016-09-03 23:29:02 299

转载 安卓接口语言 Android Interface Definition Language (AIDL)

翻译作者地址:这里写链接内容AIDL一般都用在需要比较复杂的跨进程/线程通信场合。比如自己的程序需要用一个Service去处理各种事务,而又需要跟Service能相互调用的场合。要注意的是AIDL不是线程安全的,如有这方面需要的话就要自己处理好临界情况。使用AIDL只有在你允许来自不同应用的客户端跨进程通信访问你的service,并且想要在你的service种处理多线程的时候才是必要的。 如果你不需

2016-09-02 23:58:11 1437

翻译 ViewHolder模式超简洁写法

相信很多人在使用ListView的时候都要进行ListView优化,所采用的方法便是Holder,代码如下ViewHolder holder = null; if(convertView == null){ convertView = mInflater.inflate(R.layout.xxx null); holder = new ViewHo

2016-09-02 22:49:07 371

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-09-02 22:11:15 171

springmvc的jar包

包含了springmvc开发所需要的全套jar包,,,,,,,,,,

2017-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除