4 海蓝星上

尚未进行身份认证

我要认证

“我们的征途是星辰大海!”

等级
TA的排名 5w+

SpringCloud笔记

SpringCloud微服务概述什么是微服务目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一件事。与微服务相对的叫巨石微服务与微服务架构微服务是一种架构模式或者一种架构风格,提倡将单一应用程序划分成一组小的服务==独立部署==,服务之间相互配合、相互协调,每个服务运行于...

2018-07-21 15:08:04

Java面试题即答案总结

1.Java中能创建volatile数组吗? 能,java中可以创建volatile类型的数组,不过只是一个指向数组的引用,而不是整个数组。如果改变引用指向的数组,将会受到volatile的保护,但是如果多个线程同时改变数组的元素,volatile标识福就不能起到之前的保护作用了。2.volatile能使得一个非原子操作变成原子操作么? 能,例如,在一个类中有一个long类型的成员变量,当...

2018-06-02 11:26:50

JAVA面试系列(五)(类加载顺序)

String, Stringbuffer, StringBuilder 的区别。String 字符串常量(final修饰,不可被继承),String是常量,当创建之后即不能更改。(可以通过StringBuffer和StringBuilder创建String对象(常用的两个字符串操作类)。) StringBuffer 字符串变量(线程安全),其也是final类别的,不允许被继承,其中的绝大多...

2018-04-08 14:14:47

JAVA面试系列(四)XML

XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?答:XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束,其本质区别在于Schema本身也是一个XML文件,可以被XML解析器解析,而且可以为XML承载的数据定义类型,约束能力较之DTD更强大。对XML的解析主要有DOM(文档对象模型,Document Object Model)、SAX(Simp...

2018-04-03 14:04:07

JAVA面试系列(三)字节流和字符流

题目:Java中有几种类型的流?答:字节流和字符流。字节流继承与InputStream、OutputStream,字符流继承于Reader,Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。关于Java的I/O需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它...

2018-04-03 13:53:40

JAVA面试系列(二)

题目:&和&&的区别?答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算...

2018-04-02 14:42:11

JAVA面试系列(一)int和Integer相关的自动拆装箱

题:int和Integer有什么区别?分析:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。Java 为每个原始类型提供了包装类型...

2018-04-02 10:06:28

Java的高并发编程系列(十一)线程池2

ParalleComputing(并行计算)第一种线程池:newFixedThreadPool(固定个数)public class T07_ParalleComputing { public static void main(String[] args) throws InterruptedException, ExecutionException { long ...

2018-03-30 14:30:22

Java的高并发编程系列(十)线程池1

认识Executor执行提交的Runnable任务的对象。 这个接口提供了一种将任务提交与每个任务如何运行的机制解耦的方式,包括线程使用,调度等细节。通常使用Executor而不是显式创建线程。 例如,不是为一组任务中的每一个调用新Thread(new(RunnableTask()))。start(),你可以使用: Executor executor = anExecutor; ex...

2018-03-30 11:37:21

Java的高并发编程系列(九)并发性容器

ConcurrentMappublic class T01_ConcurrentMap { public static void main(String[] args) { Map<String, String> map = new ConcurrentHashMap<String, String>(); //Map<...

2018-03-29 17:52:28

Java的高并发编程系列 (八)火车票面试题解析

有N张火车票,每张票都有一个编号,同时有10个窗口对外售票,请写一个模拟程序。使用Vector或者Collections.synchronizedXXX,分析一下,这样能解决问题吗?public class TicketSeller2 { private static Vector<String> tickets = new Vector<String&gt...

2018-03-29 16:48:17

Java的高并发编程系列(七) ThreadLocal线程局部变量和线程安全的单例模式

ThreadLocal线程局部变量public class ThreadLocal1 { volatile static Person p = new Person(); public static void main(String[] args) { new Thread(()->{ try { ...

2018-03-29 15:18:37

Java的高并发编程系列(六)生产者消费者面试题解析

面试题:写一个固定容量同步容器,拥有Put和get方法,以及getCount方法能够支持两个生产者线程以及10个消费者线程的阻塞调用使用wait和notify/notifyAll来实现:public class MyContainer1 <T>{ private final LinkedList<T> lists = new LinkedList<&g...

2018-03-29 15:08:53

Java的高并发编程系列(五)reentrantlock替换synchronized

java高并发编程主要有下面三个组成: 1.同步器synchronized 2.同步容器 3.线程池:threadPool、executort本例中由于test1锁定this,只有test1执行完毕的时候,test2才能执行:public class ReentrantLock1 { public synchronized void test1(){ fo...

2018-03-29 14:43:47

Java的高并发编程系列(四)

实现一个容器,提供两个方法,add,size, 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束,给lists添加volatile之后,t2能够接到通知,但是,t2线程的死循环很浪费cpu,如果不用死循环,该怎么做呢? 这里使用wait和notify做到,wait会释放锁,而notify不会释放锁,需要注意的是运用这种方法,必须要保证t2先...

2018-03-28 16:55:39

Java的高并发编程系列(三)

锁定某对象o,如果o的属性发生改变,不影响锁的使用,但是如果o变成另外一个对象,则锁定的对象发生改变,应该避免将锁定对象的引用变成另外一个对象。public class Demo17 { Object o = new Object(); public void test(){ synchronized (o) { while (tru...

2018-03-28 16:22:00

Java的高并发编程系列(二)volatile

挥发性关键字,使一个变量在多个线程间可见 A B线程都用到一个变量,java默认是A线程中保留一份copy,这样如果B线程修改了该变量,则A线程未必知道,使用volatile关键字,会让所有线程都会读到变量的修改值。在下面的代码中,running是存在于堆内存的t对象中 当线程t1开始运行的时候,会把running值从内存中读到t1线程的工作区,在运行过程中直接使用这个copy,并不会每...

2018-03-28 16:18:11

Java的高并发编程系列(一)synchronized锁

private int count = 10;public void test(){ synchronized (this) { //任何线程要执行下面的代码,必须先拿到Demo02对象实例的锁 count --; System.out.println(Thread.currentThread().getName() + " count =...

2018-03-28 15:12:39

httpCient 的getResponseBodyAsStream instead is recommended使用方法

使用 System.out.println(“ResponseBody:\n” + method.getResponseBodyAsString());获取信息想时候有事会有如下警告:2010-5-15 13:05:36 org.apache.commons.httpclient.HttpMethodBase getResponseBody 警告: Going to buffer resp...

2018-02-27 16:03:16

深入JVM原理(十一)Java引用类型

目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...

2018-02-08 16:48:30

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!