- 博客(25)
- 收藏
- 关注
原创 JVM--简单明了的介绍类加载过程
1.加载用.class文件为例,先把class文件放到方法区,然后将静态存储结构转化为方法区的运行时数据结构,然后在内存生成一个代表此类的java.lang.class对象,class对象比较特殊,是存在与方法区中的,作为方法区这个类中各个数据的访问入口。几点解释:1.什么叫静态存储结构转化为方法区的运行时数据结构?通俗的解释就是class文件中的数据存储结构,jvm是不能直接使用的,要将...
2019-04-13 20:38:22
361
原创 HashMap之put方法源码理解总结
引入在理解hashmap的put方法之前,需要对hashmap有一些基础的理解。**1.hashmap的数据结构:**数组 + 链表 + 红黑树2.put数据的大概流程:1.首次put数据当定义了一个hashmap结构,在第一次调用put方法进行,添加数据的时候,首先会对hashmap结构进行初始化,生成长度为16的数组。然后插入的数据调用hash(key)生成hash值,用来定位数据...
2019-03-19 14:57:59
278
原创 java并发--用实例从内存角度分析volatile
引入详细了解volatile,sychronizde以及lock推荐阅读。JVM内存模型:https://blog.youkuaiyun.com/FortressBesieged/article/details/88066898volatile:https://www.cnblogs.com/dolphin0520/p/3920373.htmlsynchronizedlock正文:volat...
2019-03-19 14:52:46
221
原创 JVM--java运行时数据区域与变量在jvm中的存储理解总结
引入在介绍运行时数据区之前,先介绍一下JVM的基本结构。JVM 的结构基本上由 4 部分组成:类加载器,在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中。执行引擎,执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上的 CPU。内存区,也就是运行时数据区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功...
2019-03-04 22:14:49
530
原创 JVM--java内存模型(JMM)理解总结
引入我们知道,Java 程序是需要运行在 Java 虚拟机上面的。Java 内存模型(Java Memory Model,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了 Java 程序在各种平台下对内存的访问都能保证效果一致的机制及规范。Java内存模型的抽象示意图主内存与工作内存java 内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作...
2019-03-01 19:55:51
287
原创 HashMap的put方法源码流程理解
几个常量:数组的默认大小16、扩容因子0.75、所以第一个扩容临界节点个数12、链表上限8,大于8链表转化为红黑树,但有一个前提,此时整个数据结构中的节点数要大于64,如果小于64,链表的长度为8时,将进行扩容、红黑树中的阶段个数如果小于6将红黑树转化为链表。节点node<k,v>中的内容Hash值:代表存储在数组中的那一个位置Key,valueNode<k,v>...
2019-04-25 09:37:43
372
原创 (大数据)多线程(三)
java JMS技术JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。JMS体系架构JMS由以下元素组成。JMS提供者:连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的...
2018-12-26 16:35:40
275
原创 (大数据)多线程(二)
java并发包JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发应用程序。主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的支持。什么是线程池?线程池的创建方式有哪些?线程池的5中创建方式:Single Thread Execu...
2018-12-24 14:44:11
289
原创 (大数据)多线程(一)
什么是进程?什么是线程?进程:不同的应用程序由JVM在内存中分配的独立的运行空间。线程:进程内部继续划分的独立的运行空间。什么是多线程?在一个进程中同时开启多个线程,多个线程同时去完成一个任务,提高效率。多线程的原理是什么?cpu在线程中快速的做时间片的切换,本质上是轮询的。有哪些实现多线程的方式?1.继承thread类,实现Runnable接口。synchronized同步关键...
2018-12-20 16:21:45
273
原创 (大数据)zookeeper(二)
zookeeper的命令行客户端zookeeper命令行客户端主要功能为:写数据,读数据,监听。zookeeper的数据结构路径树形图:检索其他节点通过路径的方式访问,每个节点也可以存放数据。在根结点下创建名为app1的子节点节点类型1、Znode有两种类型:短暂(ephemeral)(断开连接自己删除)持久(persistent)(断开连接不删除)2、Znode有四种形式的...
2018-12-18 14:49:29
199
原创 (大数据)zookeeper(一)
什么是zookerperZookeeper是一个分布式协调服务(第三方);就是为用户的分布式应用程序提供协调服务。本身也是一个分布式程序。Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)。主要提供两个功能。管理(存储,读取)用户程序提交的数据(数据大部分都为状态数据,所以zk的负载不会很大);并为用户程序提供数据节点监听服务;大数据中很多使用zk进...
2018-11-21 23:17:06
270
原创 (大数据)linux基础
第一天视频,02中详细介绍了配置vmvare和装centos的细节。linux目录结构bin:普通功能程序dev:硬件设备内容etc:约定俗成放置配置文件home:普通用户的目录lib:c语言的动态链接库usr:公用的软件安装位置sbin:系统管理程序tmp:名词目录linux的网络配置相关DNS:记录了域名和ip的对应关系本地系统中有一个hosts文件,可以用来配置域名。...
2018-11-15 15:37:28
325
原创 Maven
简介Maven是基于POM(工程对象模型),通过一小段描述来对项目的代码、报告、文件进管理的工具。Maven是一个跨平台的项目管理工具,它是使用java开发的,它要依赖于jdk1.6及以上Maven主要有两大功能:管理依赖、项目构建。依赖指的就是jar包。理解1.对于jar包的管理非常方便它有一个jar包库,当使用某个jar包时,直接在pom.xml中配置即可。而且对于jar包的版本...
2018-10-05 10:23:56
199
原创 java基础--集合
简介同类型基本数据类型,可以使用数组存储,不同的数据类型使用StringBuffer存储,但是最终一定要转化成String才能使用。对象用于封装数据,对象多了需要存储,对象个数不确定,使用集合存储。(注:学习体系方法:看顶层,用底层。)特点1.集合用于存储对象的容器。2.集合的长度可变。3.集合中不可以存储基本数据类型。常见方法可以不必记忆方法的名称,用理解的方式理解常用的功能。...
2018-10-04 19:59:21
237
原创 JAVA基础--抽象类
特点1.子类必须覆盖抽象类的全部抽象方法,否则子类还是抽象类。2.抽象方法必须定义在抽象类中,该类也必须被abstract修饰。3.抽象类不可以被实例化。4. 抽象类中可以有构造方法,用于给子类初始化。5. 抽象类中可以定义非抽象方法,但是很少见。6. 抽象关键字不可以与那些关键字共存?private: private修饰的变量,只能在本类中访问,但是抽象类中的内容需要被子类覆盖。...
2018-09-20 10:23:50
347
原创 (TT)Redis
Linux下安装redis1.安装linux系统 2.安装ssh,开启secure远程连接。 3.上传压缩包 4.tar -zxvf redis 解压 5.执行make命令 遇到问题 错误原因:未安装gcc 解决:apt-get install gcc 第二个问题: 错误原因:分配器allocator,如果有MALLOC 这个环境变量,会有用这个环境变量的去建立Red...
2018-09-12 10:50:02
276
原创 java文件操作
常用方法,变量//获取文件Path path = Paths.get( "C:\\Users\\admin\\Desktop\\OUTPUTa1.spc");//按行读取文件内容,存放到链表中List<String> lines = Files.readAllLines(path, Charset.forName("GB2312"));//按照空格(不管多少空格)分隔字符串...
2018-09-08 19:27:55
199
原创 (TT)httpclient
使用步骤 第一步:把HttpClient使用的jar包添加到工程中。 第二步:创建一个HttpClient的测试类 第三步:创建测试方法。 第四步:创建一个HttpClient对象 第五步:创建一个HttpGet对象,需要制定一个请求的url 第六步:执行请求。 第七步:接收返回结果。HttpEntity对象。 第八步:取响应的内容。 第九步:关闭HttpGet、HttpClie...
2018-09-07 09:40:32
227
原创 (TT二)商品列表
商品展示技术点 easyui-datagrid控件+pagehelper+mybatis Easyui中datagrid控件要求的数据格式为: {total:”2”,rows:[{“id”:”1”,”name”,”张三”},{“id”:”2”,”name”,”李四”}]}思考点 创建EasyUIDataGridResult 的pojo,存储后端返回给前台的数据类型。商品添...
2018-09-06 20:56:59
194
原创 (TT五)首页内容管理
首页内容展示技术点 easyui-datagrid+pagehelper新增内容js实现功能逻辑: 1.提示新增内容必须选择分类,且选择的分类为叶子节点。 2.
2018-09-06 20:49:51
236
原创 (TT一)MAVEN管理项目
简介使用maven管理工程。 1、依赖管理 2、项目构建maven使用实例淘淘商城(ssm)**1. 创建taotao-parent,其为最大的父工程,打包方式为pom。 在pom.xml中集中集中定义依赖版本号,添加依赖组件。**&amp;amp;lt;project xmlns=&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot; xmlns:xsi=&amp
2018-09-06 19:38:14
307
原创 (TT)分页插件PageHelper
简述PageHelper分页插件,与Mybatis配合使用实现分页功能十分方便。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。原理实现了mybatis的拦截器接口,对sql语句进行编辑,然后把修改后sql语句设置回去。使用方法1. 添加jar包 mybatis-paginator-1.2.1...
2018-09-06 19:15:49
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅