自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员随笔

用代码将梦想写进现实

  • 博客(108)
  • 收藏
  • 关注

原创 程序员遇到过最奇葩的需求是什么? 网友: 老板让我做个阿里云

   我们都知道,一个业务要开发成什么样子,都是先由客户或者上级提好了需求,然后一步步的分工由苦逼的各位程序猿完成,那么做了这么久开发了,身为程序员遇到过最奇葩的需求是什么?记得以前也有这个问题,好像是一位设计的小伙伴吐槽的,称客户让自己不要用PS做图,要用最流行最专业的Photoshop,小编我也是醉了,那你怎么不说要一个五彩缤纷的黑呢?小编这次又收集了其他奇葩需求,我们来看看都有哪些吧!...

2019-01-15 10:42:08 2815 1

原创 Java集合之HashMap源码分析

 前面我们提到了集合,今天我们就具体来了解一下Java集合中具体的组成部分! 以下源码均为jdk1.7HashMap概述HashMap是基于哈希表的Map接口的非同步实现. 提供所有可选的映射操作, 并允许使用null值和null健. 此类不保证映射的顺序.需要注意的是: HashMap不是同步的.哈希表哈希表定义: 哈希表是一种根据关键码去寻找值的数据映射结构...

2019-01-07 10:44:19 2408 3

原创 Java开发必须要掌握的加密方式

第一种类型加密方式:数字摘要(不可逆)数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。注:这个串有固定的长度,且不同的明文摘要成密文,其结果总是不同的(相对的),而同样的明文其摘要必定一致常见的数字摘要加密方式有 1.MD5(Message Digest Algorithm 5(信息摘要算法5))MD5,是...

2019-02-24 19:30:10 614

原创 Java面试题之 BAT 面试总结的55 道 MySQL 数据库面试题

 1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?   2、Mysql的技术特点是什么? Mysql数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。...

2019-02-24 16:49:55 512

原创 Java面试经验第一季之设计模式——建造者模式

建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。实用范围1、当...

2019-02-24 13:18:57 469

原创 Java面试经验第一季之设计模式——适配器模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作,目的是消除由于接口不匹配所造成的类的兼容性问题。举个栗子来说,就是你家墙壁上的插座是个三口的,而你的电扇是两口的,通过转换器插在插座上,你的电扇插在转换器上,就可以享受风扇了。适配器模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式类适配器模式核心...

2019-02-24 13:18:51 425

原创 Java面试经验第一季之设计模式——代理模式

代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。代理模式代理模式的应用场景:如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办...

2019-02-24 13:18:43 355

原创 Java面试经验第一季之设计模式——组合模式

组合模式的定:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。”组合模式角色:1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。3.Composite 定义...

2019-02-23 18:39:31 264

原创 Java面试经验第一季之设计模式——桥接模式

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。数据库驱动说的简单...

2019-02-23 18:39:24 239

原创 Java面试经验第一季之设计模式——装饰模式

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。说白了,和桥接模式、组合模式、适配器模式都比较像,只不过装饰模式中两个类,包括装饰对象类和被装饰对象类实现了同一个接口,装饰对象持有另一个对象的实例...

2019-02-23 13:44:21 220

原创 Java面试经验第一季之设计模式——享元模式

享元模式:“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。为了减少不会要额内存消耗,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗。主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。提高程序效率和性能,会大大加快程序的运行速度。享元模式应用场景 享元模式由于其共享的特...

2019-02-23 13:44:15 204

原创 你可能会碰到的15个高级Java多线程面试题及回答

多线程和并发问题是任何Java面试的重要组成部分。如果你想在任何一家股票投资银行获得前台信息职位,你应该准备很多关于多线程的问题。多线程和并发是投资银行中非常流行的话题,特别是在电子交易的发展中。他们向面试官询问许多令人困惑的Java线程问题。面试官只是想确保面试官对Java线程和并发有足够的知识,因为很多应聘者都是肤浅的。面向市场的直接交易的高容量和低延迟电子交易系统基本上是并行的。这些是我喜欢...

2019-02-22 19:50:12 579

原创 想进BATJava程序员,看完这个你们还觉得offer很难拿吗?

 第一个问题:阿里面试问些什么参加阿里的社招面试,而社招不同于校招,问题的范围其实是很随机的。因为能参加一些比较知名的互联网公司社招的人,70%以上都会有个3-5年的经验。这倒不是说一两年经验的同学没有机会进这些公司,而是因为这种公司,大部分情况下只招一些比较资深的开发和应届生,而不招那些处于中间阶段的人。而1-2年经验的同学,往往就刚好处于这个尴尬的阶段。对于能有3-5年经验的这部分...

2019-02-22 14:24:34 248

转载 Java面试经验第一季之设计模式——原型模式

原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。说白了,原型模式是为了解决一些不必要的对象创建过程。原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通...

2019-02-22 13:44:25 249

原创 Java面试经验第一季之设计模式——外观模式

外观模式又称门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口。说的简单点就是,将多个类或者子系统组合到一个Facade类中去,客户端访问Fac...

2019-02-22 13:44:13 214

原创 Java面试经验第一季之设计模式——单例模式

面试单例模式,主要作用是保证在Java程序中,某个类只有一个实例存在,在Java中一些管理器和控制器就被设计成单例模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程...

2019-02-21 19:53:28 203

原创 Java面试经验第一季之设计模式——工厂模式

说到工厂模式,可能很多人都觉得挺简单的,就是一个工厂类生产具体的产品对象,每个对象执行同一个行为。其实这种想法没错,只是这种说法只是最简单的一种工厂模式,就是俗称的简单工厂模式,其实工厂模式还有很多可供挖掘的东西,接下来我就详细的说说工厂模式。工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。在《Java与模式》一书中,把工厂分为三类:1...

2019-02-21 19:52:22 553

原创 Java面试经验第一季之设计模式——备忘录模式

备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。...

2019-02-21 19:48:20 231

原创 java开发,年薪15W的和年薪50W的差距

在IT系统是数十亿流量的时代,Java作为大数据时代最广泛使用的语言,已经产生了许多新技术,包括HbASE、Hadoop、MQ、NETY、Spring云等。一些独角兽公司和腾讯、Ali、百度和网易等知名工厂对Java人才的需求逐年增长。有两年工作经验的优秀程序员很容易达到30W+的水平,但同时对人才的需求也越来越高。很多同学会迷惑,是同一个程序员,也学JAVA,也掌握了相应的技术,为什...

2019-02-21 15:16:14 704

原创 Java常见面试题之类的加载过程

程序员似乎有着光明的就业前景,但他们无法逃避各级面试。没有五方、六方、七方和八方,大公司是不可能前进的。找工作的第一个障碍是笔试。如果你想得到一份高薪的工作,先回答一大堆面试问题。类加载过程主要包括七个方面:加载、验证、准备、解析、初始化、使用和卸载。下面逐一描述。1、装载在加载阶段,虚拟机主要完成三件事情:1。获取按类的完全限定名定义类的二进制字节流。2。将字节流表示的静态存...

2019-02-21 15:06:09 598

转载 Java各种数据类型转换详解

自动类型转换Java的八种基本数据类型可以混合使用。在操作过程中,不同类型的数据会先自动转换为同一类型,然后再进行操作。数据类型可以根据所占存储空间的大小分为高、低两种级别。占用空间越小,层越低,占用空间越大,层越高。自动类型转换遵循从低级到高级转换的规则。如图3.9所示。从左到右的数据类型正在增加,箭头指示自动类型转换的规则。 图1数据类型级别和自动转换规则基本数据类型的自动类型...

2019-02-21 14:18:06 956

转载 Java——集合

Java集合大致可分为Set、List、Queue和Map四种体系。其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合;Java5新增的Queue集合,代表一种队列集合的体现。Java集合类主要由两个接口派生而出:Collection和Map。接下来按照顺序对上述的集合进行分析。1.Collection:Collection作为L...

2019-02-19 22:59:27 207

转载 调查 10,500 名 Java 开发者发现,收费的 OracleJDK 仍是主流、IntelliJ IDEA 最受欢迎

昨日,作为“第一家”公开宣布 将裁员 15% 的滴滴 ,一时之间被大众推向了舆论的风口浪尖,但与此同时,因为其不变相且透明的裁员举措也为自己赢得了一片叫好声。然不可否认的是,从此事件乃至整个行业来看,不少科技公司早已于去年起就开始节衣缩食,究其根由还是源于资本寒冬潮来袭。不过对此,值得作为 开发者的我们 深思的是,资本的寒冬造成了科技行业不太平,而技术圈的浮躁又是因为什么? 近几年的技...

2019-02-18 22:35:22 318

原创 作为一名合格的Java工程师你一定要真的的21个核心知识点

这次介绍的主要内容是和J2SE相关的部分: 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。当然JVM不是唯一决定技术能力好坏的...

2019-02-18 20:58:59 222

原创 Java文件路径

Path 对象表示文件系统中文件,目录和符号链接的路径。Path 是java.nio.file包中的一个接口。当我们创建一个Path对象时,路径不一定存在。Path 可以使用旧的java.io.File apI。我们可以使用File类的方法toPath()从File对象中获取一个Path对象我们可以使用Path对象的toFile()方法从Path对象中获取File对象。我们可以...

2019-02-18 15:26:14 674

转载 重磅推荐!国外Java大牛最新Java资源整理

原文: https://github.com/akullpp/awesome-java 构建这里搜集了用来构建应用程序的工具。Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。 Gradle:Gradle采用增量构建。Gradle通...

2019-02-18 13:47:19 2589

原创 深度琢磨Java 并发编程 到底啥是同步机制

一、 同步1 synchronized 关键字synchronized 锁什么?锁对象。可能锁对象包括:this, 临界资源对象,Class 类对象。1.1 同步方法synchronized T methodName(){}同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时,需同步执行。1.2 同步代码块同步代码块的同步粒度更加细致,是商业开...

2019-02-17 15:51:26 161

转载 Java——内部类的概述和匿名内部类的格式

内部类教学目标:能够说出内部类的概念一、内部类概述:什么是内部类的定义将一个类A定义在另一个类B里面,里面的那个类A就被称为内部类,B则称为外部类成员内部类:是定义在类中方法之外的类定义格式如下所示:打开百度App,看更多图片在描述事物的时候,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类car中是包含发动机类的Engine,在这个时候,Engine就...

2019-02-17 15:27:37 404

转载 十个异常盘点——你还记得那些年的它吗?

异常是 Java程序中经常遇到的问题,我想每一个 Java程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。今天,栈长来列一下 Java 中经常遇到的前 10 个异常,排名不分先后。1、NullPointerException空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看这篇文章:Java 避免空指针的 5 个案例。2、OutOf...

2019-02-17 14:09:20 250

转载 分享Java性能监控的小技巧

  很多开发者觉得自己懂Java编程,事实是大多数开发人员都只领会到了Java平台的皮毛,所学也只够应付工作。作者将深度挖掘Java平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程困难。当应用程序性能受到损害时,大多数开发人员都惊慌失措,这在情理之中。跟踪Java应用程序瓶颈来源一直以来都是很麻烦的,因为Java虚拟机有黑盒效应,而且Java平台分析工具一贯就有缺陷。然而,随...

2019-01-30 19:12:27 145

转载 鏖战九载,Google 是否会因 Oracle 而弃用 Java?

在过往的九年间,Google 因旗下全球第一大操作系统 Android 中是否合理使用 Java 的问题,已经与软件巨头 Oracle 大战了三百回合,但一直没得到最终的定论。而如今,随着Google 官方博客中一则名为《Oracle v. Google and the future of software development》声明的发布,标志着这一案件的最后一战即将打响。在声明中,G...

2019-01-30 19:04:38 229

转载 Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁等

来源:https://segmentfault.com/a/1190000017766364 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:1.公平锁 / 非公平锁2.可重入锁 / 不可重入锁3.独享锁 / 共享锁4.互斥锁 / 读写锁5.乐观锁 / 悲观锁6.分段锁7.偏向锁 / 轻量级锁 / 重量级锁...

2019-01-30 18:58:06 185

转载 八个常见Java项目,献给初学编程的你!

如果你是正在学习Java的初学者,或者打算转行学习Java编程的小白,那么你一定会对Java能够做什么项目一定很感兴趣。一定希望对Java能够实现哪些东西有所了解。今天就为大家简单说一下一些可以用Java编程语言练手的项目。0.计算器可以用Java语言做一个手机上简单的计算器,可以做到加减乘除。而且这个功能很简单,几乎是很多学习Java编程的语言经常会去尝试的第一个小项目。虽然简单,可...

2019-01-29 19:31:23 6262 4

转载 对于红黑树的理解和基于Java的实现

前面的文章中有几处都提到了红黑树,有小伙伴私信我说不是很理解红黑树的概念,今天刚好看到一篇大牛的文章,结合一些自己对红黑树的理解,如果下文中出现的字段有任何的问题都欢迎各位评论、私信我!祝大家小年快乐,阖家团圆! 前段时间在研究 JDK1.8 的 hashmap 源码,看到 put 方法的插入环节,遇到了红黑树,不得不停止阅读源码的过程,因为还没掌握红黑树是无法完全读透 hashmap 源...

2019-01-29 19:23:25 241

原创 Java四种线程池的学习与总结

在Java开发中,有时遇到多线程的开发时,直接使用Thread操作,对程序的性能和维护上都是一个问题,使用Java提供的线程池来操作可以很好的解决问题,于是找了下API看到Java提供四种线程池使用,Java通过Executors提供四种线程池,分别为:1、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。2...

2019-01-28 16:42:36 162

原创 Java程序员的黄金五年:你在干什么?

  在Java业界流行着一种说法——黄金5年,就是从程序员入职时算起,前五年的工作选择直接影响整个职业生涯的职业发展和薪资走向。如何把握这五年,从一个刚入行的菜鸟蜕变成一个处事不惊的大佬,这是一个涉及到自身的专业知识储备和选择的难题,那么,一个Java程序员如何做才能完成从入行到大佬的晋升之路呢?                                             ...

2019-01-27 13:08:04 895

原创 Java常量池

Java当中的常量池在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区。  程序计数器是jvm执行程序的流水线,是用来存放一些指令的,本地方法栈是jvm操作系统方法所使用的栈,而虚拟机栈是用来执行程序代码的栈,在方法区中有类变量,类信息,方法信息,常量池(符号的引用,以表的形式存在的),堆是虚拟机执行程序代码的所用的堆。常量?是一旦给定...

2019-01-26 11:33:43 172

原创 Java设计模式:23种设计模式总结

一、什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相...

2019-01-26 11:15:13 368 2

原创 Java学习规划图

 JAVA学习路线图这几张图很详细的规划了学习细节第一阶段:第二大阶段:第三大阶段:第四大阶段:第五大阶段:第六大阶段:...

2019-01-25 18:38:57 500

原创 微服务火爆,Java可以干点什么?九大好处告诉你

 以下是我总结的学习微服务的九大理由:现在,让我帮助您更详细地了解这些内容。1.易于构建和维护应用程序当开发人员构建的产品变得稳定并且在市场上供客户使用时,开发人员团队主要分为以下工作。 实现新功能 修复错误 更改现有功能 在这种情况下,如果产品基于单一框架,则代码库的每个更改都必须通过构建,维护和部署的所有阶段。在这种情况下,微服务就像一个救...

2019-01-25 11:52:10 475

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除