
架构师-charleslai,面试基础技能
pingdouble
这个作者很懒,什么都没留下…
展开
-
Override和Overload的含义去区别
java中的继承,方法覆盖(重写)override与方法的重载overload的区别 方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。 重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding...转载 2018-03-30 15:33:01 · 311 阅读 · 0 评论 -
分享团队使用的git分支流程:
使用dev分支作为开发分支,release分支作为发布分支,master分支作为生产分支,feature分支作为有大变化新功能开发分支,hotfix分支作为生产代码bug修复分支。feature分支以dev为基础,功能开发完成合并到dev;dev分支代码测试完成,dev合并到release分支;release分支测试完成合并到master分支;master分支验证完成,上生产环境;生产环境有bug...转载 2018-04-08 11:40:11 · 208 阅读 · 0 评论 -
Redis为什么使用单进程单线程方式也这么快
[转] http://www.syyong.com/db/Redis-why-the-use-of-single-process-and-single-threaded-way-so-fast.htmlRedis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps。这个数据不比采用单进程多线程的同样基于内存的KV数据库Memcache...转载 2018-04-08 11:17:43 · 270 阅读 · 0 评论 -
String、StringBuffer、与StringBuilder的区别
相信大家都知道StringBuffer、StringBuilder,但是这两个的用法都差不多,到底有什么区别呢,这也是面试的时候问的比较多的一道题,这里我就来说说,这两个的区别结合String来说~String:查看源码得知,String类的声明是:public final,所以可以很清楚的知道,fianl的话是改变不了的,所以,如果我们用String来操作字符串的时候,一旦我们字符串的值改变,就...转载 2018-03-30 15:27:08 · 153 阅读 · 0 评论 -
ArrayList、LinkedList、Vector的区别
Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快,Vector由于使用了synchronized方法-线程安全,所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插...转载 2018-03-30 15:22:58 · 173 阅读 · 0 评论 -
关于hashCode方法的作用
要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果...转载 2018-03-30 15:17:01 · 174 阅读 · 0 评论 -
java的四种引用,强弱软虚,用到的场景
、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: 1Object o=new Object(); // 强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对...转载 2018-03-30 15:08:34 · 156 阅读 · 0 评论 -
equals和==的区别
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 当使用==来判断两个变量是否相等的时候,如果两个变量是基本类型变量,且都是数值类型,则只要两个变量的值相等就返回true。2.复合数据类型(类) 当他们用(==)进行比较的...转载 2018-03-30 14:57:23 · 166 阅读 · 0 评论 -
内存泄漏和内存溢出的区别和联系
内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 2、内存溢出 out of memory :指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。 3、二者的关系...转载 2018-03-30 14:50:31 · 302 阅读 · 0 评论 -
Java仿实现微信红包分配算法
春节刚刚过去,但是红包的余温却未散去;现在过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。算法介绍一、红包金额限制 对于微信红包,我们知道没人随机的最小红包是1分,最大金额是200元,这里我们同样来设置红包的范围,下面代码我们统一金钱的单位为分。[java] view plain copy/** ...转载 2018-04-08 12:00:21 · 2243 阅读 · 0 评论 -
interface和abstract 的区别和相同点
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。不能创建abstract类的实例,然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象,公开的。多继承...转载 2018-04-08 12:00:39 · 240 阅读 · 0 评论 -
Java并发编程-阻塞队列(BlockingQueue)的实现原理
阻塞队列 (BlockingQueue)是Java util.concurrent包下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式:当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。并发包下很多高级同步类的实现都是基于BlockingQueue实现的。BlockingQueue 的操作方法...转载 2018-04-08 12:00:47 · 223 阅读 · 0 评论 -
volatile和synchronized的区别
volatile和synchronized特点首先需要理解线程安全的两个方面:执行控制和内存可见。执行控制的目的是控制代码执行(顺序)及是否可以并发执行。内存可见控制的是线程执行结果在内存中对其它线程的可见性。根据Java内存模型的实现,线程在具体执行时,会先拷贝主存数据到线程本地(CPU缓存),操作完成后再把结果从线程本地刷到主存。synchronized关键字解决的是执行控制的问题,它会阻止其...转载 2018-04-08 12:00:53 · 185 阅读 · 0 评论 -
第 9 章 java 数据库编程接口
1第 9 章 java数据库编程接口9.1 知识框架图 9.1 本章知识结构9.2 知识点分析一、数据库基础知识概述1.数据库技术概述:数据库是在长期存储在计算机内的、有组织的、可共享的数据集合。数据是数据库中存储的基本对象。数据库管理系统 DBMS(Database Management System)是位于用户和操作系统之间的一层数据管理数据库基础知识数据库技术概述数据库结构java数据库编程...转载 2018-04-08 12:01:31 · 482 阅读 · 0 评论