- 博客(37)
- 收藏
- 关注
原创 还有人在问你java多线程并发吗?这一篇够你懂!
前言:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?引:用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生...
2019-11-14 21:33:58 440
原创 凭借这篇JVM拿到了阿里、滴滴、美团、携程等五家offer,舒服
导读就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。前段时间的面试跳槽的黄金段,成功升职加薪,不成功饱受打击。当然也要注意,跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规...
2019-11-13 13:56:47 342
原创 Java顶级大神的面试经验,竟如此超越常理
概述程序员跳槽的原因:钱没给够:没涨薪、涨薪太慢、自己提升太快,面试市场价高于当前薪资太多职业发展:项目太简单、技术太旧、缺乏领导机会、并发不够心受委屈:恶心的领导、恶心的制度、恶心的产品经理加班太猛:身体扛不住,或者没有自己的生活时间(996的互联网文化)其它:归属感、同事的圈子、福利、技术氛围跳槽注意事项:自己先想清楚自己要什么:我的长期的职业规划是什么?我为什么要离职?我理想...
2019-11-12 20:29:42 636 1
原创 SpringCloud实现分库分表模式下,数据库实时扩容方案
一、项目结构1、工程结构2、模块命名shard-common-entity: 公共代码块shard-open-inte: 开放接口管理shard-eureka-7001: 注册中心shard-two-provider-8001: 8001 基于两台库的服务shard-three-provider-8002:8002 基于三台库的服务3、代码依赖结构...
2019-11-10 21:32:52 776 1
原创 还在问java架构师路线?学习路线?十年京东架构师教你这样做
导读金九银十已过。程序员面试高峰期已过,有人欢喜有人忧,先恭喜那些拿到大厂的offer的朋友们。失败的朋友也不用气馁。刀剑锋自磨砺出,梅花香自苦寒来,长风破浪会有时.直挂云帆济沧海!当你每天努力,付出不亚于任何人的努力,最终得到的结果终会让你满意。主题我相信很多人做Java,如果不是在一线大厂这些平台,1到3年这个时间都会比较迷茫,想进阶想去更好的技术殿堂,比如BAT,一线大厂去看看更广...
2019-11-10 17:34:26 197
原创 大厂面试官:Java工程师的“十项全能”
导语想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格Java软件工程师所要具备的。一、专业技能熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。熟悉基于JSP和...
2019-10-30 22:05:31 316
原创 Java中&和短路&&的区别
很多时候我们经常说&&运算效率要高于&,但是Java中为何还要保留&运算符呢?我们通过下面2个最简单的案例来说明一下。 int n,d; n=10; d=0; if( d!=0 && (n%d)==0 ){ /* 非常有效的隔绝了除零操作(短路与&&) ...
2019-10-30 21:58:27 220
原创 合并二叉树
flag随便弄弄简单的东西题目介绍给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge...
2019-10-28 19:43:23 138
原创 二叉树的锯齿形层次遍历
flag软件学院大三党,每天一道算法题,第十八天题目介绍给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。思路迭代:采用经过加工的广度遍历,引入depth层数,逐层将元素放入链表(奇数层插入到尾部,偶数层插入到头部),用队列的长度代表每层的元素个数,即内层循环的次数,再将下一层元素放入队列。递归:类似深度优先遍历关...
2019-10-28 19:39:00 278
原创 java–转换文件编码
1.概念与问题1.1 字符编码计算机中存储的信息都是用二进制数表示的,而我们在屏幕上看到的数字丶英文丶标点符号丶汉字等字符是二进制数转换之后的结果. 根据某种规则,将字符存储到计算机中,称为编码.反之,将存储在计算机中的二进制数按某种规则解析显示出来,称为解码. 例如,按照A规则存储,那么想要解析显示出正确的文本符号,同样需要按照A规则解析,否则将会导致乱码现象.字符编码 (Characte...
2019-10-20 14:28:02 1596
原创 Java笔记--常量
1、常量的分类:1)字符常量,单引号引起来的单个字符,例如:‘a’2)字符串常量,双引号引起来的部分(可没有,也可有一个或多个字符),:“a”3)浮点数常量,直接写上的数字,有小数点4)整数常量,直接写上的数字,没有小数点5)布尔常量,true和false6)空常量,null,代表没有任何数据2、基本数据类型3、引用数据类型(略)1)分类:字符串、数组、类、接口、Lambda...
2019-10-20 14:16:41 148
原创 Spring boot-MyBatis学习
@Controller 处理http请求:修饰class,用来创建处理HTTP请求的对象@RestControllerSpring4之后新加入的注解,原来返回json数据需要@ResponseBody和@Controller配合。即@RestController是@ResponseBody和@Controller的组合注解,默认返回json格式。@RequestMapping 配置url...
2019-10-17 22:27:25 143
原创 Spring两大核心组件略谈
1.IoC(Inversion of Control, 控制翻转)IOC 容器负责创建对象,将对象连接在一起,配置这些对象,并从创建中处理这些对象的整个生命周期,直到它们被完全销毁。控制翻转怎么理解呢?举个例子:“对象a 依赖了对象 b,当对象 a 需要使用 对象 b的时候必须自己去创建。但是当系统引入了 IOC 容器后, 对象a 和对象 b 之前就失去了直接的联系。这个时候,当对象 a 需...
2019-10-16 22:16:29 500
原创 spring boot2整合Mybatis以及常犯错误
前言:容易出现Invalid bound statement (not found) :com.xxx错误,该错误是由于spring没有找到mapper.xml文件引起的,请检查如下方面:接口中方法名称如findAll()与Mapper.xml文件中 id="findAll"是否一致Mapper.xml文件中的 namespace的属性值与接口文件路径一致,比如有接口为xxx.xxx.Us...
2019-10-15 21:16:05 279
原创 java集成截图功能
ffmpeg安装ffmpeg官方下载地址windows安装下载对应位数的压缩包,解压如下配置环境变量linux安装https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz解压tar -xjvf ffmpeg-4....
2019-10-13 21:56:54 424
原创 你懂jvm内存分布?
Java内存区域与内存异常主要讲解内存划分,用途,创建及销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。内存的划分●栈●堆●方法区●本地方法区●程序计数器栈线程私有的;生命周期与线程相同。描述的是 Java 方法执行的内存模型:每个方法在执行时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出...
2019-10-13 17:30:44 103
原创 面试的时候,不要大谈高并发!
程序员面试,为什么不要大谈高并发?作为一个看过几千份简历,面试过几百人的面试官,常常会看到简历中有如下文字:对业务逻辑解耦,高并发等有比较深入的研究和丰富的开发实战经验对解决高并发问题有深入理解熟悉大并发技术,如:反向代理、负载均衡、Keepalived而当我在面试中,问及对方的职业规划的时候,也有一大半人会回答希望将来可以处理高并发业务希望学习高并发相关技术希望开发数千万/...
2019-10-11 22:30:29 422
原创 BATJjava100+面试题!
前言之前听过的一个故事,为什么在美国有些企业只要看你是哈佛的学历就会直接录取你呢?因为在美国上大学还是挺贵的,首先你能上的起哈佛说明你的家境还不错;第二,你能进入哈佛,也说明你脑子不笨;再者就是,哈佛确实能给你提供不错的教育环境。综合以上特质,所以这些企业才敢直接聘请那些有哈佛学历的人。所以对应到我们这份面试题也是一样,首先你如果能真的记住其中大部分的答案:第一,说明你的脑子不笨;第二,说明你...
2019-10-11 22:24:51 321
原创 开发容易犯的错误
1、Array转ArrayList当需要把Array转成ArrayList的时候,开发人员经常这样做:List<String> list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayList,但是要特别注意,这个ArrayList是Arrays类的静态内部类,并不是java.util.ArrayList类。java.util.A...
2019-10-09 22:36:14 182
原创 你们说说kafka是如何做到百万级高并发低迟延的?
Kafka是高吞吐低延迟的高并发、高性能的消息中间件,在大数据领域有极为广泛的运用。配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。Kafka到底是如何做到这么高的吞吐量和性能的呢?我们今天来走进kafka的server端探究一下它的Reactor高并发网络模型机制。1.1、Kafka Reactor模型架构Kafka客户端和服务端通信采取的是NIO的reactor模式,...
2019-10-08 21:13:25 359
原创 教你轻松几步java合并、拆分PDF文档
前言:处理PDF文档时,我们可以通过合并的方式,来任意组几个不同的PDF文件或者通过拆分将一个文件分解成多个子文件,这样的好处是对文档的存储、管理很方便。下面将通过Java程序代码介绍具体的PDF合并、拆分的方法。工具:Free Spire.PDF for Java 2.0.0 (免费版)注:2.0.0版本的比之前的1.1.0版本在功能上做了很大提升,支持所有收费版的功能,对于通过Java...
2019-09-30 15:45:48 1278
原创 MySQL 面试题灵魂集锦!
导读:攀登至巅峰,向世间最好的程序员看齐!前言目前国外 GitHub、Airbnb、Yelp、Coursera 均在使用 MySQL 数据库,国内阿里巴巴、去哪儿网、腾讯、魅族、京东的部分关键业务同样使用了 MySQL 数据库。MySQL 也是众多数据库排行榜单的第一名,针对此开发者和一线互联网企业都在用的开源数据库, 笔者在网络已有的一线公司面试题基础上进一步做了整理,列出面试中常见的一系...
2019-09-29 21:01:54 318
原创 Spring AOP 增强框架 Nepxion Matrix详细解析
前言这几天算是比较清闲,趁着空闲,发点干货。希望对各位朋友有所帮助。概述本篇来继续介绍一款开源的 AOP 框架:Nepxion Matrix,该框架致力于对 Spring AOP 的扩展和增强,灵活而且易用。Matrix 框架主要对 Spring 做了三个模块的扩展:Spring AutoProxy,Spring Registrar,Spring Selectror。本篇主要分析 AOP...
2019-09-28 17:05:53 289
原创 java2019主流技术要学的你学了多少?
Java架构学习目录一、《设计模式》二、《数据结构算法模式》三、《源码分析》四、《微服务架构》五、《Jvm性能优化》六、《团队协作》七《项目商城实战》正文大致的学习顺序**1.设计模式:**熟悉23种设计模式。虽说对于大部分项目来说使用设计模式稍显冗余,不过在某些情况下,这些前人所总结的经验确实能让人大受裨益。当然,先学习它的原因还在于,JDK源码以及其他各类框架,大多数都使...
2019-09-28 15:03:03 169
原创 CAS乐观锁
synchronized / Lock / CASsynchronized和Lock实现的同步锁机制,都属于悲观锁,而CAS属于乐观锁悲观锁在高并发的场景下,激烈的锁竞争会造成线程阻塞,而大量阻塞线程会导致系统的上下文切换,增加系统的性能开销乐观锁乐观锁:在操作共享资源时,总是抱着乐观的态度进行,认为自己能够完成操作但实际上,当多个线程同时操作一个共享资源时,只有一个线程会成功,失...
2019-09-27 17:05:07 179
原创 面试官问:为什么Java中不支持多重继承?
前言:我为什么要用这个问题单独发一篇文章呢?因为我发现这个问题很难回答,因为答对,和答好完全是两个结果。我相信大家面试的时候很清楚答对和答好差距在哪里。因为答案可能不会让面试官满意,在大多数情况下,面试官正在寻找答案中的关键点,如果你提到这些关键点,面试官会很高兴。在 Java 中回答这种棘手问题的关键是准备好相关主题, 以应对后续的各种可能的问题。这是非常经典的问题,与为什么 String...
2019-09-26 21:54:17 662
原创 最详细的自定义Spring Boot Starter开发教程!
前言:随着Spring的日渐臃肿,为了简化配置、开箱即用、快速集成,Spring Boot 横空出世。 目前已经成为 Java 目前最火热的框架了。平常我们用Spring Boot开发web应用。Spring mvc 默认使用tomcat servlet容器, 因为Spring mvc组件集成了spring-boot-starter-tomcat 。但是现在undertow servlet容器的...
2019-09-26 21:49:17 249
原创 这些常用的算法技巧你懂吗?
今天和大家讲讲,在做算法题时常用的一些技巧。对于平时没用过这些技巧的人,或许你可以考虑试着去看看在实践中能否用的上这些技巧来优化问题的解。巧用数组下标数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些字母作为下标,在遍历的时候,如果字母a遍历到,则arr[a]就可以加1了,即 ...
2019-09-25 22:06:13 155
原创 教程|教你如何给你的头像添加一个好看的国旗
今天朋友圈又火了,听说原因是 @腾讯官网 就能得到一顶绿色的帽子,啊呸,是一个好看的国庆节头像,可是听说没一会就502了,那么我们自己动手实现一个吧由于代码比较简单就不一一介绍了。var cvs = document.getElementById("cvs");var ctx = cvs.getContext("2d");var exportImage = document.getElem...
2019-09-25 21:04:28 464
原创 长连接、短连接、长轮询、短轮询、WebSocket释疑
一、短连接和长连接短连接:每次Http请求都会建立Tcp连接,管理容易长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次挥手),等待在同域名下继续用这个通道传输数据;相反的就是短连接如果服...
2019-09-25 17:18:05 371
原创 多线程编程核心技术
一,共享资源 使用sleep()观察数据紊乱注意:以下几份代码其中生产者(Producer.java),消费者(Consumer.java),和测试类(TestDemo.java)都完全一样主要对共享资源文件(Resource.java)操作Resource.java共享资源//共享资源对象public class Resource {private String name;priva...
2019-09-25 13:51:11 199
原创 吐血分享整理BAT100道面试题,
前言不知道多少朋友被面试虐的体无完肤,小瓜哥当年那可是惨痛经验,因此特地写出这篇文章供给大家参考和温习,方便各位朋友针对面试题下手,希望各位朋友都可以找到自己喜欢的大厂,去自己喜欢的岗位。不辜负本应该奋斗的青春!废话不多说:直插主题junit用法,before,beforeClass,after, afterClass的执行顺序分布式锁nginx的请求转发算法,如何配置根据权重转发...
2019-09-24 21:08:51 849
原创 java并发编程基础篇(线程进程内存模型)
一、前言HI、大家好、我相信通过前面的学习,我们了解到一些关于并发编程的一些基本概念,这一篇将继续总结以及复习基础篇的内容。现在分享第二期。希望对大家的学习能有所帮助。废话不多说、直插主题!二、进程以及线程2.1 什么是进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main ...
2019-09-24 14:52:18 116
原创 Java 中的锁如何使用?有什么注意事项?
Java 中常见的锁有synchronized可重入锁 java.util.concurrent.lock.ReentrantLock可重复读写锁 java.util.concurrent.lock.ReentrantReadWriteLocksynchronized 有 3种用法修饰普通方法,执行方法代码,需要获取对象本身 this 的锁package constxiong.conc...
2019-09-24 14:39:19 394
原创 看技术牛是怎么解决原子性问题。
有一天php去找C哥打游戏,一步一扭头,一步一扭腰的去了老大哥C哥家里。讲真的,最近php心情不太好,但是走路还是需要摇摆起来的。推开门,对着C老大哥就是一阵吐苦水。java越来越过份了。”php狠狠的说,他转头看着C:“C哥,您可是前辈,java最近砸了我不少场子,您老再不出来管管,我怕他眼里就没有您了啊。”C哥吸烟,慢慢的说:“年轻人不要着急,java的根在我们这里,再怎么折腾,也还是...
2019-09-23 22:00:26 208
原创 深入理解java并发编程、并发编程相关概念基础篇1
一、前言Come on, let’s all come together不知道各位小伙伴在对于并发编程相关的知识有了解多少呢?无论你是小白还是大牛、我这篇文章希望对你们有所帮助~~~以下是我耗费好几天整理的文章的部分。主要分为俩大部分进行学习:分为基础篇以及进阶篇,下面就开始基础篇的学习。二、并发编程的相关概念2.1.同步(Sync)与异步(Async)2.2.1 同步(Sync)...
2019-09-22 22:23:29 114
原创 线程池基础知多少?
前言真正的攀登者在路上都会去分享经验,吸取百家之长。壮实自己的短板,加油!废话不多说,开始!1.为什么需要线程池在面向对象编程中 ,创建和销毁对象是很耗时的,因为创建一个对象要获取内存资源或者其他更多资源.所以在日常编程中才会有意的避免过多的创建并不必要的对象.线程的创建和销毁也是同样,而且相比于普通的对象更为消耗资源.线程池技术的引入,就是为了解决这一问题.1.1 线程池简介线程池...
2019-09-22 20:31:17 127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人