![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础知识
krauser1991
逆水行舟 不进则退
展开
-
BIO、NIO、AIO的理解
先谈谈我对同步 异步 阻塞 非阻塞的认识:同步:Client端发送请求,等待结果返回eg: 小明去买东西,去超市买回来,东西买没买到,立即知道结果异步:Client端发送请求,不等待结果返回,(后续等Server端通知等)eg: 小明打电话让超市送过来,不知道东西有没有买到,不管结果阻塞:Client端发送请求结束后,线程会被挂起eg: 小明打完电话原创 2017-12-22 17:03:38 · 462 阅读 · 0 评论 -
初识SpringBoot
1.引入pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="原创 2018-04-13 19:58:06 · 214 阅读 · 0 评论 -
设计模式的六大规则
单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。里氏代换原则(Liskov Substitution P...转载 2018-03-20 11:31:43 · 224 阅读 · 0 评论 -
MyBatis的面试题
1、#{}和${}的区别是什么?注:这道题是面试官面试我同事的。答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给s...转载 2018-02-23 10:15:56 · 236 阅读 · 0 评论 -
多线程的面试题解答(三)
SynchronizedMap和ConcurrentHashMap有什么区别?ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据 的时候,其他段的数据也能被其他线程访问。一次锁住一个桶。ConcurrentHashMap默认将hash表分为16个桶,诸如get,put,remove等常用操作只锁当原创 2018-01-08 19:12:56 · 320 阅读 · 0 评论 -
安装dubbo-admin
下载dubbo-admin地址: https://github.com/alibaba/dubbo进入dubbo-admin目录下进行编译,指令如下:mvn package -Dmaven.skip.test=true运行结果是:Results :Tests run: 50, Failures: 0, Errors: 0, Skipped: 0[INFO][INF原创 2018-01-08 17:44:40 · 202 阅读 · 0 评论 -
多线程的面试题解答(二)
1.什么是可重入锁ReentrantLock 线程可以进入任何一个它已经拥有锁同步的代码块。同一个线程,外层函数获取锁后,内层仍然有获取该锁的代码。ReentrantLock还提供了中断锁和定时锁等待。2.当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法? 如果该对象其他方法没有加sy原创 2017-12-27 17:32:12 · 250 阅读 · 0 评论 -
多线程的面试题解答(一)
今天看到这篇文章http://ifeve.com/javaconcurrency-interview-questions-base/尝试解答一下里面的问题,陆续更新。1Java中有几种方法可以实现一个线程1.实现runnable2.实现callable3.继承thread1、继承Thread类实现多线程2、实现Runnable接口原创 2017-12-25 16:02:12 · 242 阅读 · 0 评论