- 博客(35)
- 资源 (18)
- 收藏
- 关注
原创 java轻量级的CMS解决方案 天梯(tianti)
配套书籍: 查看>>> 项目简介: ·天梯(tianti)是一款使用Java编写的免费开源的轻量级CMS系统,目前提供了从后台管理到前端展现的整体解决方案。包括后台权限管理系统、CMS栏目管理、内容发布系统、简约风格换肤系统。 ·用户可以不编写一句代码,就制作出一个默认风格的CMS站点。前端页面自适应(PC、多终端响应式适...
2017-02-17 10:31:47 9896
原创 见招拆招,面试最常见的10个问题回答攻略
本文将分享面试中最常见的10个问题的具体应答策略,仅供参考。目录问题一、你为什么离开上一家公司?问题二、你为什么想到我们公司工作?问题三、你为什么觉得自己适合这个岗位?问题四、你为什么频繁跳槽?问题五、你的优点是什么?问题六、你的缺点是什么?问题七、你的职业规划是什么?问题八、你有什么兴趣爱好?问题九、你对薪酬的期待是怎样?问题十、你还有什么问题要问的吗?问题一、你为什么离开上一家公司?回答方向:应该朝着你是朝着自己的职业规划中转职,而不是离职.
2020-08-23 16:36:42 404
原创 程序员技术以外的自我修养
在网络上程序员有很多种称呼,如:码农、程序猿、屌丝程序员、软件工程师等,其中好些都是用于调侃,或者说不是褒义词。我更喜欢用工匠精神,追求极致来形容程序员,或者说是工程师。本文分享一些与技术无关的内容,讲讲程序员在其他方面的修养。目录1、学会沟通。2、会写文档。3、读一些与技术无关的书。4、学会包装。5、建立社会化联系。1、学会沟通。木讷、安安静静写代码、不善言辞是人们对程序员的第一印象,讲话、沟通似乎是大多数程序员的硬伤。程序员的性格比较简单、直接,这其实对做技术来...
2020-08-23 16:29:41 540
原创 MySQL架构与常用存储引擎
MySQL是互联网行业中使用极其广泛的一种关系型数据库,它的架构可以在多种不同的业务场景中应用并得到很好的发挥作用,例如:Web类应用,嵌入到应用程序中,也可以支持数据仓库、内容索引、高可用的冗余系统等各种应用类型。工欲善其事,必先利其器。为了更好地应用MySQL,我们先从整体上了解MySQL架构的设计。1、MySQL逻辑架构说明图1.MySQL服务器逻辑架构图上图是我画的一幅描述MySQL各组件协同工作的逻辑架构图,图中几大核心的组件有助于我们了解MySQL服务器的设计。客户端连接M
2020-08-20 23:49:05 273
原创 俞敏洪-精彩绝伦的人生
有人说俞敏洪是企业家当中最有学者文化精神的人,文化人中最具企业家精神的人。这句话的对错暂且不予置评,单就他的经历而言,是一部充满神奇色彩、跌宕起伏的精彩人生大戏。他身上贴满了众多的标签(妥妥的一枚斜杠中年):新东方创始人/三驾马车/青年导师/赢在中国导师/中国合伙人原型/三次高考/肺结核/两次被打劫/留学教父/北大辞职/洪泰基金创始人/浑水事件/中国企业家俱乐部。起点:三次高考俞敏洪出生在江苏省江阴市的一个普通家庭,跟明代地理学家徐霞客是老乡。他在考上北大之前已经经历过两次失利的高考了..
2020-08-20 22:01:44 793
转载 万字长文精心整理21个常用Linux命令详解及使用案例
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率
2017-06-02 17:42:40 955
原创 带你了解大型网站技术架构方案(概述)
本文给梯友们梳理下李智慧编写的《大型网站技术架构_核心原理与案例分析》,我觉得里面的好多策略都在实际中有相应的使用。梳理出来仅供各位参考。
2017-05-22 16:54:59 2230
原创 Java程序员进阶学习,你知道多少?
文章来源于我的微信公众号(javaTianti) 本文结合其他网友的一些分享和经验,为梯友们整理出不同阶段学习的一个方向,仅供参考。学习的方式和途径千万种,愿梯友们找到最符合自己的一条成长之路。 一、JAVA编程入门级(语言篇) 这个阶段的JAVA学员对基础掌握还是不够牢固的,这个时候应该尽量掌握JAVA的语言
2017-05-21 12:06:57 2032 1
原创 浅谈前后端分离技术
文章来源于我的微信公众号(javaTianti)前言随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本。为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本。一、传统的分
2017-05-20 09:44:50 2767
原创 Linux下Kafka环境的搭建
本文对Kafka做个简单介绍(详细的介绍在后续文章中体现),着重介绍下Linux下Kafka环境的搭建(单机),后续会补充集群环境下的配置。 Kafka简介 Apache Kafka是分布式发布-订阅消息系统。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 Apache Kafka与
2017-05-10 11:39:05 16151
原创 Linux下Zookeeper的(单机)安装与简单测试
本文先讲述Linux下单机版的安装流程,集群的配置后续再补上。关于Zookeeper的基本介绍和原来在本文不做更多介绍,可以自行查找。本文的操作流程相对简单,仅做备忘而已。 1、安装JDK; Zookeeper需要依赖JAVA环境运行,JDK的安装在之前的文章有做详细描述,仅供参考。 2、下载最新的稳定版本;
2017-05-10 10:15:50 6362
原创 读《软技能-代码之外的生存指南》总结
摘要:本书是一个美国人写的,全书没有一句编程代码,主要阐述了一个程序员除代码以外的其他思想。个人读完以后,还是觉得整体上比较认同他提的一些理念,如:职业发展、自我营销、不断学习、生产力、理财、健身等六大方面。有些也在不同程度上开始践行,下面对本书做下简单的总结。1、职业方面 ·定位自己的专业目标。(成为哪个细分领域的专家) ·拥有商业思想(在技术思考方面,也要拥有产品运营
2017-03-29 16:25:11 709
转载 浅谈秒杀系统架构设计
秒杀是电子商务网站常见的一种营销手段。原则不要整个系统宕机。即使系统故障,也不要将错误数据展示出来。尽量保持公平公正。实现效果秒杀开始前,抢购按钮为活动未开始。秒杀开始时,抢购按钮可以点击下单。秒杀结束后,按钮按钮变成秒杀已结束。技术攻关短时间内的大访问量对现有网站业务造成的冲击。秒杀是一个网站营销的一个附加活
2017-02-08 15:43:33 505
原创 String和String Pool解析
本文先说明下String和String Pool的概念,然后再结合几个常见的例子来说明下String和String Pool的一些特性,最后再总结下这几个例子所得出的规律。1、不可变的String String的底层实际上是使用private final char[] value来实现字符串的存储的,就是说String对象一旦创建之后,就不能再修改这个对象存储的字符串内容。正因为
2017-01-16 10:38:46 1734
原创 JVM学习笔记(四)垃圾收集算法
垃圾收集(Garbage Collection,GC)需要考虑的3件事情:1、哪些内存需要回收?2、什么时候回收?3、怎么回收? 由于垃圾收集算法的实现涉及大量的程序细节,且各个平台的虚拟机操作内存又各不相同。这里只是记录下几种算法的思想:1、标记-清除算法这是最基础的收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被
2017-01-03 10:34:49 352
原创 JVM学习笔记(三)JAVA中四种引用浅析
JAVA中的引用分成4种,分别是强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)。这四种引用强度依次逐渐减弱。 强引用:类似Object obj = new Object()这类的引用,只要强引用还存在,垃圾收集器永远不会回收。如果内存空间不够了,JVM会抛出OutOf
2017-01-03 09:43:40 419
原创 JVM学习笔记(二)JVM判断对象是否”存活”
在堆里面存放着JAVA的对象实例,垃圾收集器在对象进行回收之前,第一件事情要确定的是这些对象哪些还“存活”着,哪些已经“死去”。1、引用计数算法 思路:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;引用失效时,计数器值就减1。计数器为0的对象就是不可能再被引用的。 优点:实现简单,判定效率也很高。 缺点:对于循环引用的对象,它们的计
2016-12-29 18:33:46 373
原创 JVM学习笔记(一)JVM运行时数据区域解析
JAVA虚拟机在执行JAVA程序的过程中,会把它所管理的内存划分成若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。JVM所管理的内存将包括以下几个运行时数据区域,如下图所示: 注:蓝色部分(方法区和堆)是所有线程共享的数据区。白色部分(虚拟机栈、本地方法栈、程序计数器)是线程隔离的数据区。 1、程序计数器 程序计数器(Program
2016-12-29 17:07:06 421
原创 设计模式(九)模板方法模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以在不改变一个算法的结构即可重新定义该算法的某些特定步骤。 结构: 模板抽象类:在抽象类中定义了一系列基本操作,这些基本操作可以是具体的,也可以是抽象的。其子类可以重定义或实现这些基本操作。同时,抽象类中实现了一个模板方法,用于定义一个算法的框架。模板方法可以调用抽象类中的基本方法。模板方法
2016-12-22 17:51:10 477
原创 设计模式(八)观察者模式
定义:又称发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 使用场景: 当一个对象的改变需要通知其他对象时,且不知道有多少个对象需要等待改变。 结构: 抽象主题角色:把所有观察者对象的引用保存在一个集合中,每个抽象主题
2016-12-22 14:52:05 388
原创 设计模式(七)代理模式
定义:为其他对象提供一种代理(中介),以控制这个对象的访问。对这个对象进行访问控制的一个原因是为了只有我们确实需要这个对象时才对它进行创建和初始化。 使用场景: 1、延迟加载。如果一个对象并不是在任何场景都需要,且这个对象的创建需要消耗不少资源。 2、对原有对象方法的增强。这些加强可能是一些日志操作,基于设计模式开闭原则的考虑,这些加强不可能放到原有真实类里面,所以就新增了一个代
2016-12-22 10:44:27 488
原创 Linux下MyCat安装
概述:MyCat可以当成是数据库集群的中间件,是一个彻底开源的数据库产品。可以有效地解决分库、分表、读写分离等问题。这里先简单阐述下Linux下MyCat的安装流程。 1、下载指定版本的MyCat安装文件(官网:https://github.com/MyCATApache/Mycat-download,也可以使用wget),这里以1.5版本为例,然后copy到home下。
2016-10-31 17:26:12 2364 1
原创 设计模式(六)外观模式
定义:为子系统中的一组接口提供一个一致的界面。定义一个高层接口,使得这一子系统更加容易使用。 使用场景:子系统交互复杂,建立外观模式可以屏蔽系统间的通信实现,客户端调用简单、透明。 结构: 外观(Facade)角色:被客户端调用,可以访问各子系统的功能。 子系统(SubSystem)角色:实现子系统的功能,处理Facade指派的任务
2016-10-25 15:52:47 385
原创 设计模式(五)适配器模式(结构型)
定义:把一个类的接口变换为客户端所期待的另一种接口,使原本因接口不兼容而无法在一起工作的两个类能够在一起工作。 分类: 类适配器模式:把适配的类的API转换成目标类的API。(继承需要适配的类) 对象适配器模式:把适配的类的API转换成目标类的API。(委派需要适配的类) 组成: 目标(Target)角色:所期待得到的结果,目标接口
2016-10-25 14:54:05 412
原创 设计模式(四)原型模式(创建型)
定义:通过拷贝一个已经存在的实例来返回新的实例,而不是新建实例。被拷贝的实例就称为原型。类图原型类实现思路 (1)实现Cloneable接口。(在Java虚拟机中,只有实现了这个接口的类才可以被拷贝。) (2)重写Object类中的clone方法。(作用是返回对象的一个拷贝,但其作用域是protected,要修改成public。) 原型模式中的拷贝分为“浅拷贝”和“
2016-09-30 10:49:56 407
原创 设计模式(三)建造者模式(创建型)
定义:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景: 创建的产品有复杂的内部结构,且创建的产品有较多的共同点,其组成部分相似。隔离复杂对象的创建,使得相同的过程可以创建不同的产品。 与抽象工厂的区别: 在建造者模式里,有个指导者,由指导者来管理创造者,用户是与指导者联系的,指导者联系创建者得到最后的产品。
2016-09-29 17:50:35 479
原创 设计模式(二)单例模式(创建型)
使用场景: 一个类只能创建一个实例对象。如读取服务器配置文件的类,由单个实例对象直接读取。实现流程: (1)、定义一个私有变量; (2)、将构造函数私有化; (3)、提供一个获取实例的公用方法; 下面列出几种常见的实现模式,仅供参考: 饿汉式单例:在类创建的时候就初始化实例对象,每次调用的时候都
2016-09-29 14:52:42 387
原创 设计模式(一)工厂模式(创建型)
简单工厂模式 一个抽象产品类,可以派生出多个具体产品类; 一个具体工厂类,可以创建多个具体产品的实例。 抽象产品类定义public abstract class Sender { void send(){ };} 具体产品类定义 邮件产品类public class MailSender ex
2016-09-27 15:10:23 412
原创 Mysql下GROUP_CONCAT使用
之前遇到一个这样的小需求:数据表里面每一行里面存放的是每个用户每个因子的得分数(一个用户共有23个因子),而我们需要得到的报表是按用户为维度排列出每个用户的因子得分记录,其中每行记录显示的是该用户23个因子的得分记录值。 该需求是要实现将一张表里面相同ID的多行转换成一个ID一行多列的形式展现,如下图所示(该例子中的表名假定为A):
2016-09-26 18:11:56 622
原创 XSS攻击处理
1、什么是XSS攻击 XSS又称为CSS(Cross SiteScript),跨站脚本攻击。其原理是攻击者向有XSS漏洞的网站中“嵌入”恶意的HTML代码,当其他用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如:盗取用户Cookie、重定向到其他网站等。 理论上,所有可以输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞。漏洞的厉害取决于攻击代码
2016-09-26 16:57:05 876
原创 Linux 下mysql安装
概述:mysql以其轻便、开源、免费的特点而广受欢迎,mysql的各类使用资料也比较齐全。本文以centos环境下安装mysql-5.6.12(*.tar.gz)为例,记录下在Linux下安装mysql的详细情况,仅供参考。 1、下载指定版本的Mysql安装文件(官网:http://mysql.com/downloads,也可以使用wget),然后copy到、home下。
2016-09-19 10:30:18 686
原创 Linux下Nginx的安装
概述:Nginx是一个轻便的支持高并发的HTTP和反向代理服务器,运用很广。这里记录下Linux下Nginx的安装步骤,这里以centos系统为例,安装Nginx1.7.9,安装目录为/usr/local。 一、安装Nginx依赖环境 1、安装gcc-c++ # yum install -y gcc-c++
2016-09-17 10:02:37 746
原创 阿里云ECS服务器下挂载数据盘、JDK安装、tomcat安装
现在云服务器运用得越来越普遍,如果我们刚刚购买了一台ECS服务器,假如里面是什么都还没安装的,那我们得先对这台“裸机”进行一些基础软件的安装。这里以Linux+Nginx+tomcat+mysql的环境为例子,将这些常用的操作进行一些记录汇总。本文先记录下阿里云ECS数据盘挂载、jdk安装和tomcat安装,下篇再接着记录Nginx和mysql的安装。
2016-09-12 11:58:01 3862
java服务端后台常用模板(Spring Data JPA、Hibernate、 Spring MVC、Layer)
2017-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人