JAVA
文章平均质量分 82
tangdong3415
这个作者很懒,什么都没留下…
展开
-
深入Java内存模型
在介绍 Java 内存模型之前,我们先来看一下到底什么是计算机内存模型,然后再来看 Java 内存模型在计算机内存模型的基础上都做了哪些事情。要说计算机的内存模型,就要说一段古老的历史,看一下为什么要有内存模型。内存模型:英文名 Memory Model,它是一个老古董了。它是与计算机硬件有关的一个概念。那么,我先介绍下它和硬件到底有啥关系。CPU 和缓存一致性我们应该知道,计算机...原创 2019-11-21 17:42:40 · 134 阅读 · 0 评论 -
学习 flag
https://blog.csdn.net/z694644032/article/details/100084287基础篇Java 毕向东_Java基础视频教程25天基础版 菜鸟教程 Java SE 社区 JDK 8 中文手册 Java入门第一季 慕课网 Java入门第二季 慕课网 Java入门第三季 慕课网 马士兵 J...原创 2019-11-10 20:49:18 · 745 阅读 · 0 评论 -
基于Redis 的高并发抢红包程序是如何实现的
下面介绍一种基于redis的抢红包方案。把原始的红包称为大红包,拆分后的红包称为小红包。1.小红包预先生成,插到数据库里,红包对应的用户ID是null,红包生成算法如下:预先生成所有的红包还是一个请求随机生成一个红包简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即100)分解成n个小整数的过程,小整数的范围是[min, max]。最简单的思路,先保底,每个小红包保证转载 2017-03-02 11:30:54 · 20303 阅读 · 2 评论 -
java 反射机制详解
1反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2反射机制能做什么反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有原创 2017-02-24 10:31:11 · 304 阅读 · 0 评论 -
java 多线程并发之-- CountDownLatch
CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任务将一直阻塞等待,直到这个CountDo原创 2017-02-27 09:59:53 · 270 阅读 · 0 评论 -
Git 学习-第一节:基础和原理
Git基础 直接记录快照,而非差异比较 Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看图 1 1 其他系统在每个版本中记录着各个文件的具体差异 Git原创 2017-04-12 19:57:12 · 354 阅读 · 0 评论 -
Git学习-第二节:Egit使用
使用egit首先需要 配置个人信息,最重要的是user.name和user.email 。用于提交代码时使用。 Preferences>Team>Git>configuration:点击Add Enty添加user.mail和user.name如图: 创建git仓库 在服务器端用egit创建一个git仓库(当作git服务器,)。 注:这里因为做Demo。我将项目H原创 2017-04-12 21:03:55 · 2325 阅读 · 0 评论 -
google 10年 java技术栈【全栈】
java技术栈参考了众多资料,这里就不再详细列举了,可以自行去搜索1 java基础:1.1 算法1.1 排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序1.2 二叉查找树、红黑树、B树、B+树、LSM树(分别有对应的应用,数据库、HBase)1.3 BitSet解决数据重复和是否存在等问题1.2 基本2.1原创 2017-06-06 17:05:16 · 3043 阅读 · 1 评论 -
50条工作中绝对要掌握的sql(含有答案)
50个常用sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score fro原创 2017-06-02 15:28:36 · 1188 阅读 · 0 评论 -
数据库的隔离机制和锁类别
一 数据库事务处理中出现的数据不一致的情况 在多个事务并发做数据库操作的时候,如果没有有效的避免机制,就会出现种种问题。大体上有四种问题,归结如下:1、丢失更新 如果两个事务都要更新数据库一个字段X,x=100事务A事务B读取X=100 读取X=100写入x=X+100写入x=X+200事务结束x=200原创 2017-02-21 13:31:51 · 509 阅读 · 0 评论 -
ebay分布式事务方案中文版
由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布式事务的世界会是怎样。如今就如MySQL和PostgreSQL这类面向低端用户的原创 2017-03-01 19:02:26 · 2304 阅读 · 1 评论 -
线程的状态
线程互斥:对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到原创 2017-02-20 14:43:20 · 257 阅读 · 0 评论 -
JAVA 类加载过程详细讲解 -jvm加载类机制CLass Loading
jvm加载类机制CLass Loading原创 2016-12-20 20:02:36 · 19581 阅读 · 2 评论 -
JVM 内存 (堆(heap)、栈(stack)和方法区(method) )
JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )原创 2016-12-20 20:22:03 · 314 阅读 · 0 评论 -
java 编译和加载和执行类的全过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成cla原创 2017-01-13 15:53:28 · 3837 阅读 · 0 评论 -
JVM虚拟机类加载机制-过程
虚拟机类加载机制1. 类的生命周期: 加载、验证、准备、解析、初始化、使用、卸载七个阶段,其中验证、准备、解析三个阶段统称为连接。其中,解析的阶段的时机并不一定。2. Java类加载的时机: Java类加载的时机Java虚拟机规范并没有强调,但是对于初始化阶段,虚拟机规范则严格限定了有且只有5种情况必须立即对类进行初始化:原创 2017-01-13 16:40:46 · 427 阅读 · 0 评论 -
使用Storm实现实时大数据分析
当今世界,公司的日常运营经常会生成TB级别的数据。数据来源囊括了互联网装置可以捕获的任何类型数据,网站、社交媒体、交易型商业数据以及其它商业环境中创建的数据。考虑到数据的生成量,实时处理成为了许多机构需要面对的首要挑战。我们经常用的一个非常有效的开源实时计算工具就是Storm —— Twitter开发,通常被比作“实时的Hadoop”。然而Storm远比Hadoop来的简单,因为用它处理大数据原创 2017-01-10 18:21:00 · 290 阅读 · 0 评论 -
final\String\StringBuffer
1、final修饰类、引用变量、基本变量(1)、如果一个类被final修饰则这个类是不能被继承的,没有子类。String类是一个final类,只能说明这个类不能被继承也就没有子类。(2)、如果一个引用变量被final修饰,则引用变量的值是不能修改,而不是说被引用对象(3)、2中说的引用变量的值的问题,如果大家看了深入理解jvm这本书的话可能对这句话有印象:由于reference类型原创 2017-02-16 17:24:26 · 627 阅读 · 0 评论 -
双亲委托模型
JDK默认ClassLoaderJDK 默认提供了如下几种ClassLoader1. Bootstrp loaderBootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib,-Xbootclasspath参数指定的路径以及%JAVA_HOME%/jre/classes中的类。1. ExtCla原创 2017-02-16 18:40:35 · 809 阅读 · 0 评论 -
HashMap源码剖析
HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 HashMap 实现了Serializable接口,原创 2017-02-09 10:56:09 · 665 阅读 · 0 评论 -
JAVA版本-剑指Offer
1、面试题3:二维数组中的查找题目大致为: 一个二维数组,每一行按照从左到右递增,每一列按照从上到下递增,查找数组中是否存在某个数。如数组:1 2 8 92 4 9 124 7 10 136 8 11 15思路: 这道题有其特殊性,从右上角或者左下角开始查找的方向是确定的。这句话是说比如是查找原创 2016-12-23 11:07:27 · 2509 阅读 · 0 评论