Java
文章平均质量分 79
老臣、
海到无边天作岸,山登绝顶我为峰!
展开
-
云计算笔记一:概述
什么是大数据百度百科上是这么说的: 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的4V特征即Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度),原创 2017-11-26 19:33:20 · 636 阅读 · 0 评论 -
JAVA并发编程——线程协作通信(一)
JAVA并发编程——线程协作通信原创 2018-11-06 22:47:44 · 866 阅读 · 0 评论 -
JAVA并发编程——Java多线程
进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。https://www.cnblogs.com/lwbqqyumidi/p/3804883.html...原创 2018-11-02 21:02:30 · 427 阅读 · 0 评论 -
JAVA并发编程——常用的并发工具类
CountDownLatch(倒计时门闩)倒计时门闩就像一个带计数开关的门,只有在门前等待的线程达到一定数量,门闩才会打开,线程才可以继续执行。CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。CountDownLatch是通过一个计数器来实现的,计数器的初始值为初始任务的数量...原创 2018-11-13 21:16:44 · 1308 阅读 · 0 评论 -
JAVA并发编程——Callable、Future和FutureTask
无论是从类Thread继承还是实现Runnable接口来创建线程,方法run是没有返回值的 。线程可不可以有一个返回值?答案是肯定的。带返回值的线程可以通过接口Callable来定义,并通过接口Future来获得线程的返回值。接口Callablepublic interface Callable<V> { /** * Computes a result, or t...原创 2018-11-13 22:49:01 · 1736 阅读 · 0 评论 -
JAVA并发编程——线程协作通信(二)
线程间的协作在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生...原创 2018-11-08 19:35:59 · 701 阅读 · 0 评论 -
JAVA并发编程——Fork/Join框架
Fork/Join框架介绍原创 2018-11-12 20:01:16 · 599 阅读 · 0 评论 -
JAVA并发编程——Semaphore(信号量)
控制并发线程数的SemaphoreSemaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。应用场景Semaphore可以用于做流量控制,特别是公用资源有限的应用场景,比如数据库连接。假如有一个需求,几十个线程并发地存储到数据库中,而数据库的连接数只有10个,这时我们必须控制只有10个线程同时获取数据库连接保存数据,否则会报错无法获取数据库连...原创 2018-11-14 23:03:50 · 821 阅读 · 0 评论 -
JAVA并发编程——线程池
JAVA并发编程——线程池原创 2018-11-19 21:38:37 · 726 阅读 · 0 评论 -
JAVA并发编程——线程池(二)
使用线程执行器执行有返回值的线程有返回值的线程定义需要继承接口Callable,然后将线程交给执行器执行,提交线程需要使用submit方法。例如,某驾校有4辆考试用车,有8个学生要进行考试,要求分别获得考生的考试时间。在本例中,可以将驾校看作是一个线程池,4辆车看作是可以同时执行任务的线程,8个考生看作是线程要执行的对象。代码示例:public class Student implemen...原创 2019-01-03 22:37:40 · 822 阅读 · 0 评论 -
JAVA并发编程——显示锁与CAS
显式锁按照Java虚拟机对锁的实现方式划分,Java平台中的锁包括内部锁和显式锁。内部锁是通过synchronized关键字实现的;显式锁是通过java.util.concurrent.locks.Lock接口的实现类(如java.util.concurrent.locks.ReentrantLock类)实现的。锁能够保护共享数据以实现线程安全,其作用包括保障原子性、保障可见性和保障有序性。...原创 2019-01-06 23:05:52 · 760 阅读 · 0 评论 -
JAVA并发编程——并发容器
为什么JUC需要提供并发容器Java提供了丰富的容器,有map、list、set、queue、deque。但是其存在一个不足:多数容器类都是非线程安全的,即使部分容器是线程安全的,由于使用sychronized进行锁控制,导致读/写均需进行锁操作,性能很低。为了提供高效地并发容器,java 5在java.util.cocurrent包中 引入了并发容器。JUC并发容器java并发编程——并...原创 2019-01-15 21:22:41 · 249 阅读 · 0 评论 -
Java中的动态代理
一、代理模式简介代理模式是一种常用的设计模式。代理模式为其对象提供了一种代理以控制对这个对象的访问。代理模式可以将主要业务与次要业务进行松耦合的组装。根据代理类的创建时机和创建方式的不同,可以将其分为静态代理和动态代理两种形式:在程序运行前就已经存在的编译好的代理类是为静态代理,在程序运行期间根据需要动态创建代理类及其实例来完成具体的功能是为动态代理。二、静态代理静态代理是代理模式的实现...原创 2019-02-27 23:02:45 · 4078 阅读 · 0 评论 -
JVM——运行时数据区
JVM 的组成从上图不难看出,JVM的组成包括下面几个部分:类加载器(Class Loader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地接口(Native Interface)本地库(Native Libraries)首先通过类加载器(Class Loader)把 Java 代码转换成字节码,运行时数据区(Runtime...原创 2019-06-04 16:03:20 · 203 阅读 · 0 评论 -
面试收集文章
面试/笔试第一弹 —— 计算机网络面试问题集锦面试/笔试第二弹 —— 操作系统面试问题集锦面试/笔试第三弹 —— 数据库面试问题集锦面试/笔试第四弹 —— 多线程面试问题集锦面试/笔试第五弹 —— Java面试问题集锦(上篇)面试/笔试第五弹 —— Java面试问题集锦(下篇)...原创 2019-06-27 16:59:09 · 190 阅读 · 0 评论 -
Java基础——注解(Annotation)
一、什么是注解注解(Annontation)是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。注解(Annontation)像一种修饰符一样,应用于包、类型、...原创 2018-10-31 18:54:41 · 783 阅读 · 1 评论 -
Java基础——反射(Reflection)
一、什么是反射在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。想要使用反射机制,就必须要先获取到该类的字节码文件对象(.class),通过字节码文件对象,...原创 2018-10-31 11:10:27 · 528 阅读 · 0 评论 -
Spring Boot(一)——Spring Boot入门
一、Spring Boot简介二、从一个HelloWorld入门Spring Boot1、创建一个maven工程2、导入Spring Boot相关的依赖 &amp;amp;lt;parent&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/grou原创 2018-10-01 22:01:42 · 970 阅读 · 0 评论 -
Spring MVC(一)——Spring MVC初入门
从一个Hello World入门Spring MVC Spring MVC是Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一。Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。 Spring MVC采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。同时,Spr...原创 2018-02-26 20:29:17 · 1106 阅读 · 0 评论 -
MyBatis(三)——SQL映射文件
概述 映射文件指导着MyBatis如何进行数据库增删改查,有着非常重要的意义。这篇博客主要写了MyBatis中简单的增删改查操作,参数的传递方式,以及自定义resultMap,实现高级结果集映射。 cache –命名空间的二级缓存配置。 cache-ref – 其他命名空间缓存配置的引用。 resultMap – 自定义结果集映射。 parameterMap...原创 2018-03-08 10:02:03 · 1574 阅读 · 0 评论 -
Spring框架(三)——AOP
一、AOP简介 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次...原创 2018-02-21 11:08:59 · 1417 阅读 · 0 评论 -
Spring框架(一)——初识Spring
一、 Spring 是什么 1)Spring 是一个开源框架。 2)Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能。 3)Spring 是一个 IOC(DI) 和 AOP 容器框架。二、Spring容器的主要核心是什么 控制反转(IOC),传统的java开发模式中,当需要一个对象时,...原创 2018-02-11 19:57:57 · 1274 阅读 · 0 评论 -
Spring框架(二)—— IOC
一、 IOC &amp; DI 概述 IOC(Inversion of Control):其思想是反转资源获取的方向。 传统的资源查找方式要求组件向容器发起请求查找资源,作为回应, 容器适时的返回资源.。而应用了 IOC 之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式。 DI(Dependency I...原创 2018-02-14 22:16:01 · 989 阅读 · 0 评论 -
Spring+Spring MVC+MyBatis的整合
一、概述 在WEB开发中我们往往会借助框架来简化自己的开发过程,本文介绍了SSM框架的整合,从而搭建一个简单的Web框架。 环境参数: 操作系统:windows10 64位 jdk版本:jdk1.8 64位 Maven版本:3.50 MySql版本:mysql-server 5.7 Tomcat版本:apache-tomcat-7. ...原创 2018-03-15 14:52:56 · 2058 阅读 · 0 评论 -
Spring框架(四)——Spring中的事务管理
一、事务简介什么是事务? 事务就是一系列的动作,它们被当做一个单独的工作单元。这些动作要么全部完成,要么全部不起作用。事务的四个关键属性(ACID) 原子性(atomicity): 事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成要么完全不起作用。 一致性(consistency): 一旦所有事务动作完成, 事务就被提交。数据和资源就处于一种满足...原创 2018-02-23 21:16:28 · 1390 阅读 · 0 评论 -
MyBatis(四)——动态SQL
概述 MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这...原创 2018-03-10 19:37:40 · 4753 阅读 · 2 评论 -
MyBatis(六)——MyBatis的逆向工程
一、概述 MyBatis的逆向工程指利用MyBatis Generator,可以快速的根据表生成对应的映射文件,接口,以及bean类。 MyBatis Generator,简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需...原创 2018-03-16 20:39:25 · 6863 阅读 · 0 评论 -
MyBatis(一)——初识MyBatis
MyBatis简介MyBatis是什么 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录。MyBati...原创 2018-03-05 20:39:00 · 1058 阅读 · 0 评论 -
MyBatis(二)——全局配置文件
MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。文档的顶层结构如下: properties属性 mybatis可以使用properties来引入外部properties配置文件的内容; resource:引入类路径下的资源 url:引入网络路径或者磁盘路径下的资源 <...原创 2018-03-06 09:08:29 · 752 阅读 · 0 评论 -
MyBatis(五)——MyBatis中的缓存机制
一、概述 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis中的缓存机制可以极大的提升查询效率。 MyBatis系统中默认定义了两级缓存。一级缓存和二级缓存。 1、默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。 2、二级缓存需要手动开启和配置,他是基于namespace级别的缓存。 3、...原创 2018-03-13 18:49:11 · 1729 阅读 · 0 评论 -
MyBatis(七)——使用PageHelper插件进行分页
一、概述 PageHelper是MyBatis中非常方便的第三方分页插件。 官方文档: https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md HowToUse: https://github.com/pagehelper/Mybatis-PageHelper/b...原创 2018-03-21 19:16:00 · 852 阅读 · 0 评论 -
Web Service技术的SOAP实现
写在前面的话:本文章由刘源师兄分享,非我原创。此处仅作学习记录之用。0 SOA1 简介1.1 提出1.2 定义1.3 特点1.4 主要实现方式1.5 架构1.6 组成元素1.6.1 WSDL1.6.2 SOAP1.6.3 UDDI2 发布2.1 Java平台2.1.1 JAX-WS2.1.2 Axis22.1.3 CXF2.2 .NET平台2...原创 2018-05-28 21:47:26 · 1750 阅读 · 0 评论 -
RESTful架构与RESTful API设计
一、REST的由来 REST这个词是Roy Thomas Fielding博士在他2000年的博士论文中提出的,Fielding将他对互联网软件的架构原则定名为REST,即Representational State Transfer的缩写,翻译为“表现层状态转化”。如果一个架构符合REST原则,就称它为RESTful架构,即REST风格的架构。二、REST是什么 REST是一种架...原创 2018-05-28 21:56:08 · 2693 阅读 · 0 评论 -
JVM——垃圾收集(GC)
引言1、什么是GC?garbage collector2、GC要做的事?1、Where/Which?2、When?3、How?3、为什么我们要去了解GC和内存分配?1、面试需要2、GC对应用的性能是有影响的3、写代码有好处4、谁需要GC?GC(垃圾收集)主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程...原创 2019-08-20 14:09:38 · 205 阅读 · 0 评论