课程github地址https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构。微服务是一种架构。不限定什么语言 单体应用和微服务的对比 SOA微服务的发展史 rpc更讲究面向接口 socket更面向于底层 分布式的,也叫作进程外的 业务处理的结果一般返回给服务组件。 rest可以是json、xml、html。为什么很多会会选择json,json的格式比较简单清晰。微服务面临的挑战 表达式驱动依赖反射驱动目录概要demo spring IO就是一些依...
序上一篇文章中,介绍了最基础的编码方式 — —BASE64,也简单的提了一下编码的原理。这篇文章继续加解密的系列,当然也是介绍比较基础的加密方式 — — MD5,MD5 属于单向加密算法,是不可逆的加密方式,也就是说,采用了 MD5 加密方式加密之后,就不能对加密的结果进行解密,得到原有的字符串,这是不可以的。背景相信在我们的生活中,MD5 用到的还是很广泛的。在说 MD5 之前,首先来了解一下单向加密算法都有哪些。当然,MD5 是...
写了这几年的程序,一直以来就想写个总结,第一,算是自己的回忆,第二,愿我的经验能帮助大家点滴吧! Java后续系列包括我的所有博文,都是来自项目实战,和自己的一些理解。如果有大神发现错误之处,或者发现某个知识点,观点与你们背道而驰,请指教!知识和观点?个人觉得没有绝对的对与错 只是看法不一样! 一直以来,哥在某些Q群里都是伪装大神的存在,去指点一二,迷惑刚出门的小学生们。问题解决之后,偷偷跑来...
1.线程状态图: 5种状态:1.新建(new)2.就绪(Runnable)3.运行(Running)4.阻塞(Blocked)等待阻塞:调用了wait()方法同步阻塞:调用了synchronized()方法或执行了synchronized代码块,但是没有获取到对象的同步锁。其他阻塞:调用sleep()或join()方法5.死亡(Dead)相关方法:1.run():是Runnable接口里唯一的一个抽象方法,可以被重复调用。直接调用run方法,并不会启动新线程,程序中依然只有主线程这一个线程,其程序执...
1.Object类中的wait()/notify()/notifyAll()wait(): 让当前线程处于Waiting状态并释放掉持有的对象锁,直到其他线程调用此对象的线程notify()/notifyAll()方法,当前线程被唤醒进入Runnable状态 。 wait(long timeout):让当前线程处于Timed Waiting状态并释放掉持有的对象锁,直到其他线程调用此对象的线程notify()/notifyAll()方法或者时间到期,当前线程被唤醒进入Runnable状态 。 wait(long timeout, int nanos) :让当前线程...
集合--童年的美好时光集合,忽然让小编想起那段美好的学生时光,集合第一次遇见她的时候,小编当年还是一个懵懂的丫头,也不曾想过会在计算机的世界再次相遇,再回首,集合在数学中是一个基本概念,集合就是“一堆东西”,集合里面的“东西”叫做元素,由一个或多个元素所构成的叫做集合,又邂逅,计算机的世界中,集合是一组可变数量的数据项也可能是0个的组合,这些数据项可能共享某些特征,需要以某种操作方式一起进行操作,一般...
概要前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基于JDK1.7.0_40)关于锁的使用示例请参考“Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock”。转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496651.html 参考代码下面给出Java1.7.0_40版本中,ReentrantLock和AQS的源码,仅供参考!ReentranL...
原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。 Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO N...
Java反射: 1package com.corn;2 3import java.lang.reflect.Constructor;4import java.lang.reflect.Field;5import java.lang.reflect.InvocationTargetException;6import java.lang.reflect.Method;7 8publicclass TestReflect {9 10publicstaticvoid main(String[] args) {11 12// 获取“类类型对象” 方法1 13 Class<?> c0 = User.class;14 15// 获取“类类型对象” 方法2 16 User user1 = new User();1...
本文来自汤姆大叔前言大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用的函数表达式”...
转自:http://www.cnblogs.com/skywang12345/p/3544116.html概要本章介绍线程池中的Callable和Future。Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544116.html Callable 和 Future 简介 Callable 和 Future 是比较有趣的一对组合。当我们需要获取线程的执行结果时,就需要用到它们。Callable用于产生结果,Future用于获取结果。1. CallableCallable 是一个...
问题(1)Semaphore是什么?(2)Semaphore具有哪些特性?(3)Semaphore通常使用在什么场景中?(4)Semaphore的许可次数是否可以动态增减?(5)Semaphore如何实现限流?简介Semaphore,信号量,它保存了一系列的许可(permits),每次调用acquire()都将消耗一个许可,每次调用release()都将归还一个许可。特性Semaphore通常用于限制同一时间对共享资源的访问次数上,也就是常说的限流。下面我们一起来学习Java中Semaphore是如何...
一、前言 对于初学者来说,要执行JSP和Servlet,Tomcat是一个很不错的选择,。Tomcat是Apache组织的产品,sun公司对它的支持也相当不错。 二、下载,安装 下载地址为JAVA官方站点:jakarta.apache.org,国内也比较多。从这个地址可以下载:http://jakarta.apache.org/builds/tomcat/release/,我下载的是Tomcat32b4版本。 下载完,解压到一个目录,我这里用F: omcat32b4作为例子。三、配置 桌面上选择“我的电脑”(右键) 高级 环境...
http://www.importnew.com/20386.html Java8系列之重新认识HashMap原文出处: 前利简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 Hash...
前言在C#经典面试中掺杂过Java的final关键字,主要用于类不能被继承,在C#则是利用关键字seal修饰类为密封类,而在Java中的final关键字的具体用法包含C#中const、readonly、seal三者使用之和,本节我们来聊聊Java的关键字final。关键字final通过final关键字修饰意为无法改变,在Java早期版本通过final可以改善性能或者提高效率,但现如今版本final已经无所谓性能,我们只关注于在设计时应用final的具体场景,final关键字包含两层含...