- 博客(171)
- 资源 (3)
- 收藏
- 关注
原创 类加载器
之前(已经n年之久)介绍过类加载的基本流程,虚拟机类加载过程,现在来重点关注一下其中几个比较重要的流程节点。本文主要介绍类加载器,了解类加载器主要有哪些、加载流程、双亲委派以及打破双亲委派1、类加载器种类从java虚拟机角度来分,类加载器可以分为两种: 一种是启动类加载器,使用C++语言实现,是虚拟机自身的一部分。 一种是所有其他的类加载器,由java语言实现,独立于虚拟机外部,并且都继承自抽象类java.lang.ClassLoader。从java开发人员的角度分,类加载器...
2021-01-11 22:18:01 333 2
原创 Hadoop核心--HDFS
什么是HDFS? HDFS(Hadoop Distributed File System),分布式文件存储系统。源自于Google的GFS论文,是GFS的克隆版。与其他分布式文件系统相比,它具有很高的容错能力,适合部署在廉价的机器上;另外它能提供高吞吐量的数据访问,适合海量数据的存储。HDFS特点 易于扩展 运行在普通廉价的机器上,提供容错机制 为大量用户提供高性能的海...
2018-08-05 22:36:59 496 2
原创 初识Hadoop
hadoop概念: Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。核心组件: 1、Hadoop Common,是Hadoop的基础工具类库,为其他模块提供通用工具 2、Hadoop Distributed File System(HDFS),分布式文件存储系统,可以存储海量数据 3、Hadoop YARN,是Hadoop...
2018-07-30 23:07:38 2280 1
原创 菜鸟成长记录之磨砺一
最近在工作中的感触颇深,无论是称之为压力也好,磨砺也好,总之很感谢这段日子。先来一部分小小的总结。 作为程序工程师,首先来说一下程序功能。虽然说完成功能很重要,但是在开始之前的思考很重要(这个后边再论),在完成的过程中需要注意的是: 第一 尽可能的少些代码,代码越多潜在的问题也越多。 第二是抽象,当你写代码时,发现超过两次使用相同代码时,那么你必须要做的就是代码抽象复用。 ...
2018-03-13 23:00:41 526 6
原创 MongoDB基本命令
mongodb命令: 1、创建一个数据库 use [databaseName] 数据库创建之后并没有真正创建,只要放置list集合后才会存在。 2、查看所有数据库 show dbs 3、给指定数据库添加集合并且添加记录 db.[documentName].insert({…}) 4、查看数据库中
2017-08-27 16:09:13 946 10
原创 关于查询缓存的一个思考
近期在兼任公司DBA时,某同事问了一个问题,说咱们数据库中有没有开启查询缓存啊。这个问题比较常见,在涉及到数据查询优化时,这个问题就得需要考虑了。 事后,我又想了一下这个问题,就说项目中是否需要对数据库开启查询缓存?使用过HIbernate或mybatis的都应该知道,在这两个持久层框架中,都存在查询缓存。那么他们有什么区别与联系呢 相同点: 数据库的查询缓存和持久层框架中的
2017-08-20 16:17:49 714 13
原创 【MyCat】--基本内容
它是一个开源的分布式数据库系统,是一个实现了mysql协议的server,前端用户可以把它看做是一个数据库代理,用户mysql客户端工具或命令行访问,而其后端可以用mysql原生协议与多个mysql服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库。 mycat就是一个近似等于mysql的数据库服务器,可以用连接mysql的方式去连接mycat,大多数情
2017-08-13 13:01:50 503 6
原创 多线程下双重检查锁的问题及解决方法
单例模式中有一种实现方式叫双重检查锁,主要是为了更好、更安全的实现单例功能。先来看一下该方法的核心代码: public class DoubleCheckedLocking{ private static Instance instance; public static Instance getInstance(){
2017-08-05 13:56:16 4284 9
原创 redis--基本概念
在介绍redis之前,首先来了解一下什么是Nosql数据库。 NoSQL(not only SQL),泛指非关系型数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 NoSql的特点: 1、易扩展:NoSQL数据
2017-08-03 12:59:31 450 6
原创 solr简介
什么是solr? solr是一个独立的企业级搜索应用服务器,对外提供类似web-service的API接口。是一个高性能,基于Lucene(开源搜索引擎框架)的全文搜索服务器。实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。 全文检索是指是计算机索引程序扫描文章中的每一个词,对每个词都建立索引,指明该词在文章中出现的次数和
2017-07-25 21:23:27 1967 26
原创 Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdom
近日在启动mysql时,遇到一个问题,现记录一下。问题:Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid) 查看本地文件时,发现提示的目录下并没有localhost.localdomain.pid文件,也就是mysql在安装
2017-07-23 19:49:05 26961 30
原创 【spring】--Bean作用域
Spring框架功能强大,其中一个常用的功能是使用IOC容器来管理Bean,在创建Bean的过程中,主要有5中作用域,下面就来介绍一下每一个作用域的特点和作用。 1、Singleton:设置为该模式的Bean,容器初始化时就创建一个Bean实例,而且该实例只存在一份。测试如下: 创建SingleScope类: public class SingleScope {
2017-07-16 10:07:35 575 25
原创 多线程--Thread和Runnable区别
线程的创建有两种方式,分别是继承Thread类和实现Runnable接口,那么这两种方式有什么相同点,以及区别在何处呢? 首先通过两个实例还看一下他们的相同之处: 实例1:使用继承Thread类 创建子类MultiExtendThread: public class MultiExtendThread extends Thread { private i
2017-07-09 21:30:23 583 18
原创 虚拟机类加载过程
作为资深IT工程师或架构师,了解类在虚拟机中的加载过程是基本功之一。下面来简单分析一下这个过程,首先看一张整体图: 1、加载 类的加载是指将类的class文件读入到内存的过程,并为之创建一个java.lang.Class对象。 具体流程: 1.1 通过一个类的全限定名来获取定义此类的二进制字节流。 1.2将这个字节流所代表的静态存储
2017-07-02 20:48:28 597 21
原创 RocketMQ多Master模式
了解了RocketMQ的基本知识后,我们先来学习一下RocketMQ的多Master模式。 多Master模式:集群中不存在Slave节点,集群中所有节点都是Master节点。优点是配置简单,单个Master宕机或重启对应用没有影响。但是如果某个节点的Master宕机之后,该节点上未被消费的消息在节点恢复之前无法订阅和消费,实时性受到影响。 集群搭建过程:服务器划分
2017-06-25 15:17:39 3523 14
原创 RocketMQ学习
最近在研究RocketMQ的内容,首先来介绍一下何为RocketMQ。 RocketMQ: 是一个队列模型的消息中间件,具体高性能、高可靠、高实时、分布式特点 能够保证严格的消息顺序 提供丰富的消息拉取模式 实时的消息订阅机制 高效的订阅者水平扩展能力 亿级消息堆积能力 较
2017-06-18 19:02:34 1355 5
原创 【颗粒归仓】--java集合
java集合大致分为Set、List、Queue和Map四种 Set代表无序、不可重复的集合 List代表有序、可重复的集合 Map代表具有映射关系的集合 Queue代表一种队列集合 (java5新增) 一、Set:不允许包含相同的元素,不能记住元素的添加顺序 1、HashSet:按Hash算法来存储集合中的元素,具
2017-06-11 11:15:18 497 3
原创 【颗粒归仓】--数据库事务
说到事务,做IT的肯定都不陌生,会想到Transcation(开启、提交、回滚)。作为资深的IT工作者,对事务全面理解是一项基本功,当然对于正在迈向资深的我来说,也必须了解。下面就来谈一下事务 一、事务的概念 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 二、事务的特性 事务必
2017-06-01 17:42:20 712 11
原创 【颗粒归仓】--shiro
Shiro:是一个开源的安全框架,提供身份验证、授权、密码学和会话管理。 基本内容: Authentication:身份认证/登录,验证用户是不是拥有相应的身份; Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
2017-05-28 21:37:18 530 1
原创 【颗粒归仓】--Zookeeper基本概念
ZooKeeper是一个开放源代码的分布式协调服务,设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 先来了解一些zookeeper的基本概念: 1、数据节点: zookeeper中分为两类,一类是构成集群的机器,称为机器节点;第二类是数据模型中的数据单元,称之为数据节点(ZNode)。 zo
2017-05-21 22:03:24 586 2
原创 【颗粒归仓】--Struts2
Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,无论是从设计角度,还是从项目的易用性角度来说,struts2都是一个优秀的MVC框架。 过程描述: 1 、客户端初始化一个指向Servlet容器(例如Tomcat)的请求。 2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContext
2017-05-14 21:49:45 1114 9
原创 【颗粒归仓】--spring IoC容器
IoC容器是Spring技术的一个核心,Spring的很多实现技术都是交给IoC容器进行管理和实现的。所以,作为一个资深的java工程师,熟悉IoC容器的实现原理和过程是必备的技能。 基本概念: 就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。这个建立过程就是我们常说的控制反转,将对象的创建反转给容器
2017-05-07 13:33:38 511 8
原创 【颗粒归仓】--Java泛型
了解集合的人都知道,将对象存入集合之后,集合不会记录对象的数据类型,把所有的对象当初Object类型进行处理。当程序从集合中取出数据时,需要进行强制转换其类型,这样很容易造成类型转换失败,引起ClassCastException异常。为了避免此现象,引入了泛型,而我们常常称作泛型集合,其实就是在集合的基础中增加了一个类型限定。 下面来看一个常见的问题来加以说明为什么要引入泛型:
2017-04-26 21:45:51 559 3
原创 【多线程】--线程同步
熟悉多线程的都知道,线程同步时,可以使用synchronized机制来实现,现在就具体的说一下这个synchronized的使用方法。
2017-04-23 19:10:19 436 4
原创 dubbo进阶--管控台
上篇介绍了dubbo的一个入门实例,服务启动后,我如何查看自己的服务是否已经启动,如何查看是否存在消费者呢?这就需要使用dubbo的管控台。 材料准备: jdk-7u76-linux-x64.tar.gz、apache-tomcat-7.0.59.tar.gz、dubbo-admin-2.5.3.war 安装步骤:( jdk的配置我就不再叙述了) 1、将apa
2017-04-15 15:14:05 1169 2
原创 dubbo进阶--入门实例
注册中心搭建好之后,现在开始进行一个dubbo实例,来体验一下dubbo的魅力。 为了方便的管理jar包,本次使用的是maven项目。 项目主要结构: 提供者: 消费者: 实现过程: 本次的demo属于简单入门,所以从代码上来看没有多少,主要是看dubbo是如何进行提供分布式服务的。
2017-04-09 09:43:49 634 1
原创 Dubbo进阶--zookeeper注册中心
上篇已经介绍了Dubbo的基本概念,我们知道了Dubbo提供方会将自己的服务注册到注册中心,使服务暴露出来,实现透明化。这节就介绍一下注册中心的搭建 目前常用的注册中心主要有四种,如下: 通过上述四种方法的对比,我选择了第一种zookeeper注册中心。 搭建环境: Linux:CentOS-7.0-1406-x86_64 jdk:jdk-7u76
2017-03-28 21:50:55 699 14
原创 dubbo进阶--基本概念
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行。Dubbo就是其中一种分布式服务架构,在使用Dubbo之前,我们有必要了解一下Dubbo的基本概念。 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合。它致力于提供高性能和透明化的RPC远程调用方案,以及SOA
2017-03-26 10:55:57 2012 20
原创 U盘无法显示问题
最近电脑遇到一个问题,插上u盘后总是不显示,但是在系统托盘中已存在该信息。 解决方案: 打开控制面板,选择“查看设备和打印机” 在设备一栏中我们可以找到对应的外接设备,一般根据设备名称很容易找到我们需要显示的内容,如下: 选择自己的u盘,然后右键--删除设备,将u盘拔出,再重新插入,就可以显示自己的u盘了
2017-03-19 14:46:15 1364 16
原创 Linux最小安装关闭防火墙
上篇介绍了Linux的最小安装方法,安装完毕之后就可以进行自己的软件安装和环境配置了。当进行环境配置或文件配置时,有的时候需要设置防火墙,一种是给指定的端口关闭防火墙拦截,一种是直接关闭防火墙。前者一般用于服务器,避免外界对服务器进行攻击。而后者可以用于自己测试使用。本次以后者为例,进行关闭防火墙。 其实网上有很多介绍防火墙关闭的方法,但是刚开始接触的时候,有的还真不知道如何操作。下面介绍
2017-03-12 19:22:32 1855 3
原创 Linux最小安装联网
对于Linux的安装有很多版本,但是无论哪个版本,一般都需要进行联网,加载自己所需的插件。当然,对于大牛来说,没有网也没有影响。所以,本次主要是让刚接触Linux的人能够联网。 首先要修改网络配置: 命令:vi /etc/sysconfig/network-scripts/ifcfg-eno16777984 需要修改的内容: 将BOOTPROTO设置为
2017-03-05 19:02:56 2844 5
原创 Easyui combobox下拉项过长的处理
在easyUI中,datagrid中的列内容过长时,可以设置属性来进行个性设置,比如超过多少字之后用“...”代替。但是在combobox中没有该属性,那么应该如何处理呢? 解决思路: 在加载完下拉框内容时,使用combobox中的formatter函数进行数据处理。处理数据时,根据其长度进行截取,当超过自定义的长度之后,再进行截取。 实现代码: $("#ClassP
2017-02-26 18:56:44 6140 4
原创 Redis服务器搭建
作为一个面向大众的电商项目,给用户带来良好的速度体验是非常重要的。首先用户的这些需求是不会变的,那么如何在不变动需求的情况下来最大的满足用户的需求呢?redis其实可以在一定程度上做到,先来恶补一下redis的基本知识。 redis,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。既然作为一种数据库,那么它就
2017-02-19 20:12:11 2005 8
原创 FastDFS搭建
FastDFS,作为一款开源的分布式文件系统,对文件进行管理,解决了大容量存储和负载均衡的问题。最近在项目中就应用了该系统作为图片服务器,下面来进行FastDFS的搭建。 一、准备 1、准备相关文件:fastdfs-5.05.tar.gz 、fastdfs-nginx-module_v1.16.tar.gz 、 libfastcommon-1.0.7.tar.gz 2
2017-02-12 22:20:26 425 11
原创 Nginx简单实现反向代理和负载均衡
Nginx安装好之后,开始使用它来简单实现反向代理与负载均衡的功能。在这之前,首先得脑补一下什么是反向代理和负载均衡。 反向代理:是指以代理服务器来接收Internet上的请求,然后将请求转发到内部网络的服务器上,并将结果返回给Internet上连接的客户端,此时的代理服务器对外就表现为反向代理服务器。 通俗来讲,反向代理服务器就好比我们常说的中介,Internet客户端可以看作是租
2017-02-05 20:10:26 2695 11
原创 菜鸟成长记录——2016-2017半年总
一切困难都阻挡不住我追寻梦想的脚步,只能作为垫脚石,使自己爬得更高。 工作篇 大概是3月底的时候,我进入了中核华辉公司工作。我对这里的评价是:安逸。没有复杂的项目业务逻辑,没有特别高深的应用技术。基本上每天都是一些重复性的工作,偶尔会涉及到一些业务上或者技术上的问题。但总得来说,这个过程有点安逸。 在安逸
2017-01-20 22:22:19 517 7
原创 Nginx安装及配置
了解了一些Nginx的基本内容之后,现在进入安装阶段,通过此过程来加深对Nginx的认识与理解。 一、准备环境 GCC:可用来编译C语言程序。是必需的编译工具 使用命令:yum install gcc-c++ PCRE:兼容正则表达式,是一个函数库。Nginx的HTTP模块需要靠它解析正则表达式 命令:yum insta
2017-01-15 20:09:31 616 17
原创 nginx介绍
近期在做电商项目中,用到了nginx服务器存放图片。那么nginx是什么呢?为什么又要选择使用nginx呢?下面就来一一介绍。 什么是nginx? Nginx是一款轻量级的高性能的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名,受到了很多大型网站的青睐,如京东、淘宝、百度等。
2017-01-13 19:52:04 497 16
原创 浏览器下载模板中文乱码
在项目中遇到这样一个问题,下载word文档模板时,如果名称是中文,会出现乱码问题。解决该问题,需要在代码中进行设置,同时还需要考虑到不同的浏览器使用的方法不同。 问题如下: 实现过程: String fileName = appTemplate.getName(); HttpServl
2017-01-08 19:18:41 1258 18
原创 考研总结
考研结束已经一周多了,终于能静下来好好总结一下这两个月来的努力以及最后那两天的奋斗了。这个过程用两个字来总结的话就是:充实。 相对以往的研究生考试来说,我们这次的挑战更大,需要付出的精力也是巨大的。怎么说呢?首先,今年属于第一年的在职研究生考试改革,需要跟统考的学生一块考试,而且是同一套卷。这个困难是巨大的,第一是已经毕业,精力相对来说有限;第二是没有太多的时间准备,而且还没有想过要进行这
2017-01-01 18:48:29 1364 8
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人