
互联网
文章平均质量分 95
程序员一木
这个作者很懒,什么都没留下…
展开
-
对标阿里P7-P8高级Java程序员的进阶技术路线
对标阿里P7-P8高级Java程序员的进阶技术路线最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验证,而不是走过场),除非你面试过程中犯错误,或者你不想来,否则,那个offer一定是可以拿下的。那些拿下offer的人,基本上都有这么一些特征...原创 2019-05-13 19:17:33 · 704 阅读 · 0 评论 -
对标阿里P6-P7高级Java程序员的进阶技术路线
对标阿里P6-P7高级Java程序员的进阶技术路线java使者java是世界上最好的语言关注他7 人赞同了该文章Java程序员学成归来,无论是自学还是培训,都将面临着一个问题,那就是自己的技术要通过面试官的检验才能拿到自己梦寐以求的高薪offer。那面试官都喜欢什么样的Java程序员你知道吗?所谓知己知彼,百战百胜。只有先了解了面试官的喜好需求才能对症下药...原创 2019-05-19 18:21:53 · 1163 阅读 · 0 评论 -
Java码农逆袭之路,我是如何用三年进入BAT拿高薪的!
Java码农逆袭之路,我是如何用三年进入BAT拿高薪的!计算机专业出身,对软件开发很感兴趣,所以毕业找工作的时候就一直投IT行业的职位。刚踏入这个行业时,以为突击一下东拼西凑的面试材料,就能有个很好的收获。结果却是,别说大公司了,就是很多看不上的小公司的笔试题都过不去。焦躁阶段后来我去了本地的一个小公司去做服务端的开发。虽然叫服务端开发,但其实就是做系统指标监控功能,从DB中读取一些指...原创 2019-05-19 18:24:13 · 300 阅读 · 0 评论 -
Java高级-Mycat
Java高级-MycatMyCatMyCat 简介什么是 MyCat :MyCat 是目前最流行的基于 java 语言编写的数据库中间件,是一个实现了 MySQL 协议的服务器,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库...原创 2019-05-19 18:33:00 · 159 阅读 · 0 评论 -
5 月编程语言排行榜:Java第一,R跌出Top20
5 月编程语言排行榜:Java第一,R跌出Top20我们都知道,最近,TIOBE 发布了 5 月份编程语言排行榜。其中,前三名依然健稳不变,他们分别是 Java、C、C++,第四则为: Python ,第五则为 VB .NET。下面两张图,我们可以看到:2019 年 5 月 Top 20 排名imageimage2019 年 5 月 Top 10 语...原创 2019-05-19 18:34:39 · 211 阅读 · 0 评论 -
Java高级技术:Nginx
Java高级技术:Nginx什么是Nginx?Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务。Nginx 是由伊戈尔·赛索耶夫 为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。 Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很...原创 2019-05-19 18:36:58 · 306 阅读 · 0 评论 -
Java高级技术:Redis
Java高级技术:RedisRedis 简介 :Remote Dictionary Server(Redis)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。Redis 的特点 :优点:1. 支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash 表)、set(集合...原创 2019-05-19 18:40:59 · 284 阅读 · 0 评论 -
Java高级技术:Redis(二)
Java高级技术:Redis(二)Redis 的数据持久化 :1、RDB 方式 :对内存中数据库状态进行快照 RDB 方式:将 Redis 在内存中的数据库状态保存到磁盘里面,RDB 文件是一个经过压 缩的二进制文件,通过该文件可以还原生成 RDB 文件时的数据库状态(默认下,持久化到dump.rdb 文件,并且在 redis 重启后,自动读取其中文件,据悉,通常情况下一千...原创 2019-05-19 18:42:19 · 231 阅读 · 0 评论 -
Java高级技术:Solr
Java高级技术:Solr一、 Solr 介绍1.全文检索什么叫做全文检索呢?这要从我们生活中的数据说起。 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 1)结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 2)非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等。 非结构化数据又一种叫法叫全文数据。 按照数据的分类,搜索...原创 2019-05-19 18:44:01 · 313 阅读 · 0 评论 -
java面试题之int和Integer的区别
java面试题之int和Integer的区别int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值...原创 2019-05-14 18:35:15 · 270 阅读 · 0 评论 -
JdbcTemplate的环境搭建
JdbcTemplate的环境搭建1.建立一个项目,导入jar包(ioc aop dao 连接池 数据库驱动包)拷贝Spring容器对应的配置文件到src下2.在配置文件中引入外部属性文件3.配置数据源4.配置JdbcTemplate5.设置属性6.测试 db.properties db.properties学习群64弍46衣3凌9,资料群69似64陆0吧3driverClass...原创 2019-05-14 18:37:45 · 350 阅读 · 0 评论 -
简析date和calendar的用法
简析date和calendar的用法获取现在系统的时间和日期看起来是一件非常神奇的事情,但是当使用date和calendar之后发现仍然非常神奇。1、date 使用date日期之前需要导入包:import java.text.SimpleDateFormat;//用来格式化date文本输出;import java.util.Date;//用来使用date类型;具体实例如下:...原创 2019-05-14 18:39:54 · 439 阅读 · 0 评论 -
线程的基本操作
线程的基本操作线程的基本操作•线程状态切换•终止线程(stop)•中断线程(interrupt)•挂起(suspend) 和 继续执行(resume)•等待线程结束(join) 和 谦让(yield)•sleep •线程优先级•守护线程•线程的同步操作(synchronized, wait, notify)线程状态切换终止线程(stop)不推荐使用Thread.st...原创 2019-05-14 18:41:33 · 95 阅读 · 0 评论 -
Spring框架四大基本原则
Spring框架四大基本原则一、使用POJO进行轻量级和最小侵入式开发。1. 什么是POJO按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。 POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。 POCO的概念是从j...原创 2019-05-14 18:43:03 · 351 阅读 · 0 评论 -
spring cloud 分布式链路追踪
spring cloud 分布式链路追踪一篇讲了微服务之间的调用 spring cloud eureka 微服务之间的调用微服务之间进行调用 那么如果我负责一个模块 别人负责另一个模块 我调用了他的方法 测试那边却报了错 那是我的问题还是他的问题 这个时候大家应该就能想到日志可以解决这个问题如何使用日志呢先在配置文件中加 logging: path: D:\logs\poppy-mall...原创 2019-05-14 18:45:03 · 189 阅读 · 0 评论 -
Java多线程包的Locks一览
Java多线程包的Locks一览Java多线程包提供了Locks,用作线程控制,看到这个名字自然要想起原生的Synchronized关键字,二者有什么优劣呢?Synchronized在得不到锁时只能等待,但是Locks可以使用tryLock这样的方法听起来好处也有限,但还是看看Locks的几个API吧//要求获得锁,会阻塞整个线程void lock();//要求获...原创 2019-05-14 18:47:27 · 280 阅读 · 0 评论 -
如何实现登录、URL和页面按钮的访问控制
如何实现登录、URL和页面按钮的访问控制用户权限管理一般是对用户页面、按钮的访问权限管理。Shiro框架是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理,对于Shiro的介绍这里就不多说。本篇博客主要是了解Shiro的基础使用方法,在权限管理系统中集成Shiro实现登录、url和页面按钮的访问控制。一、引入依赖使用SpringBoot集成Shiro时,...原创 2019-05-14 18:51:00 · 355 阅读 · 0 评论 -
一句话说清分布式锁,进程锁,线程锁
一句话说清分布式锁,进程锁,线程锁在分布式集群系统的开发中,线程锁往往并不能支持全部场景的使用,必须引入新的技术方案分布式锁。线程锁,进程锁,分布式锁线程锁:大家都不陌生,主要用来给方法、代码块加锁。当某个方法或者代码块使用锁时,那么在同一时刻至多仅有有一个线程在执行该段代码。当有多个线程访问同一对象的加锁方法/代码块时,同一时间只有一个线程在执行,其余线程必须要等待当前线程执行...原创 2019-05-14 18:52:58 · 366 阅读 · 0 评论 -
为什么Redis 单线程却能支撑高并发?
为什么Redis 单线程却能支撑高并发?最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,...原创 2019-05-14 18:54:46 · 458 阅读 · 0 评论 -
Java市场饱和?他在忽悠你!
Java市场饱和?他在忽悠你!最近逛贴吧、论坛,总有小白问:转行Java怎么样?Java好学吗?求推荐Java入门书籍.......而下面不变的回答就是各种劝告,各种阻止,而这些语言就让那些要入门但还在门口徘徊的初学者犹豫了。Java市场饱和了,找不到工作的。错!Java从1995年出现,已经有21年的历史了,他的性能、实用性、兼容性都彰显其价值所在。回顾过去十五年的成果,J...原创 2019-05-20 18:40:01 · 1394 阅读 · 0 评论 -
人工智能机器学习Java也可以
人工智能机器学习Java也可以用于Java的5大机器学习库盘点机器学习是目前最热门的技能之一,许多公司都在争先恐后的寻找能够编写ML和深度学习代码的程序员,本文将为大家盘点5个针对Java的首选ML库#WEKAWeka是我们最好的Java机器学习库的首选。Weka 3是一个完全基于Java开发,最适合用于机器学习算法。Weka主要用于数据挖掘,数据分析和预测建模。它完全免费,...原创 2019-05-20 18:41:45 · 1452 阅读 · 0 评论 -
JAVA并发-自问自答学ThreadLocal
JAVA并发-自问自答学ThreadLocal前言ThreadLocal很多同学都搞不懂是什么东西,可以用来干嘛。但面试时却又经常问到,所以这次我和大家一起学习ThreadLocal这个类。下面我就以面试问答的形式学习我们的——ThreadLocal类(源码分析基于JDK8)问答内容1.问:ThreadLocal了解吗?您能给我说说他的主要用途吗?答:从JAVA官方对Thr...原创 2019-05-20 18:44:01 · 178 阅读 · 0 评论 -
mysql事务和锁 SELECT FOR UPDATE
mysql事务和锁 SELECT FOR UPDATE事务:当然有的人用begin /begin work .推荐用START TRANSACTION 是SQL-99标准启动一个事务。start transaction #开始一个事务操作savepoint sp1 #保存点名称操作ROLLBACK ROLLBACK To sp1 #回退到 sp1...原创 2019-05-20 18:45:40 · 1350 阅读 · 0 评论 -
Java单例模式的七种写法
Java单例模式的七种写法第一种(懒汉,线程不安全):public class Singleton {private static Singleton instance;private Singleton (){}public static Singleton getInstance() {if (instance == null) {instance = new...原创 2019-05-20 18:48:41 · 117 阅读 · 0 评论 -
图解Java常用数据结构
图解Java常用数据结构最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的.HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下:Lin...原创 2019-05-20 18:50:32 · 141 阅读 · 0 评论 -
Java开发中常用的快捷键有哪些
Java开发中常用的快捷键有哪些不知道Java常用的快捷键在工作的时候是非常的耽误时间的,本篇文章小编就为大家稍微整理了一些常用的Java快捷键分享给大家。 Ctrl+1或F2快速修复 Ctrl+D快捷删除行 Shift+Enter 快速切换到下一行,在本行的任何位置都可 Ctrl+F11快速运行代码 Alt+上下键 快速移动行(可多行)...原创 2019-05-20 18:52:23 · 927 阅读 · 0 评论 -
理解 Java 核心基础精髓
理解 Java 核心基础精髓1 人赞同了该文章1、字符串不变性下面这张图展示了这段代码做了什么String s = "abcd";s = s.concat("ef");2、equals() 方法与 hashCode() 方法的区别HashCode 被设计用来提高性能。equals() 方法与 hashCode() 方法的区别在于:如果两个对象相等(e...原创 2019-05-20 18:53:49 · 164 阅读 · 0 评论 -
java new一个对象的过程中发生了什么
java new一个对象的过程中发生了什么java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和创建对象。一、类加载过程(第一次使用该类)java是使用双亲委派模型来进行类的加载的,所以...原创 2019-05-20 18:55:34 · 275 阅读 · 1 评论 -
Java的四种引用类型
Java的四种引用类型在Java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用。在这四个引用类型中,只有强引用FinalReference类是包内可见,其他三种引用类型均为public,可以在应用程序中直接使用。引用类型的类结构如图所示。1.强引用Java中的引用,类似C语言中最难的指针。(我是C语言入门编程,指针的概念还是很深入我心。)通过引用,可以对堆中的对象进行操作。如:...原创 2019-05-20 18:56:45 · 143 阅读 · 0 评论 -
打通 Java 任督二脉 —— 并发数据结构的基石
打通 Java 任督二脉 —— 并发数据结构的基石每一个 Java 的高级程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是如何实现的?最常用的最简单的锁要数 ReentrantLock,使用它加锁时如果没有立即加成功,就会阻塞当前的线程等待其它线程释放锁之后再重新尝试加锁,那线程是如何实现阻塞自己的?其它线程释放锁之后又是如果唤醒当前线程的?当前线程是如何得出自己没...原创 2019-05-15 18:30:43 · 141 阅读 · 0 评论 -
老大难的 Java ClassLoader 再不理解就老了
老大难的 Java ClassLoader 再不理解就老了ClassLoader 是 Java 届最为神秘的技术之一,无数人被它伤透了脑筋,摸不清门道究竟在哪里。网上的文章也是一篇又一篇,经过本人的亲自鉴定,绝大部分内容都是在误导别人。本文我带读者彻底吃透 ClassLoader,以后其它的相关文章你们可以不必再细看了。ClassLoader 做什么的?顾名思义,它是用来加载 Clas...原创 2019-05-15 18:33:14 · 130 阅读 · 0 评论 -
Java AQS无码讲解
Java AQS无码讲解很多人都听说过Java里有个叫AQS的东西,其实AQS只是Java里的一个类AbstractQueuedSynchronizer的缩写,当我们谈论AQS时,更多的是指那些利用AQS实现的同步工具类,比如Semaphore、CountDownLatch、ReentrantLock等。那么什么是同步工具类呢?打个比方,你开了一家饭馆,可以容纳10桌客人同时吃饭...原创 2019-05-15 18:35:05 · 13572 阅读 · 0 评论 -
如何学习Java多线程
如何学习Java多线程最近一段时间,我对《Java并发编程实践》这本经典而又有些难懂的书籍,尝试用了一些简单有趣、通俗易懂的方式进行解读,现整理成GitBook(文末有链接),方便大家阅读。为什么要解读这本书因为这是一本经典却又难懂的书。这本书的经典我想不必多讲了,几乎所有想学习Java并发的同学,都会被推荐去看这本书(虽然他们中的大多数在看了不到三分之一之后就放弃了),作为...原创 2019-05-15 18:37:28 · 210 阅读 · 0 评论 -
Java线程池是如何诞生的?
Java线程池是如何诞生的?时间回到2003年,那时我还是一个名不见经传的程序员,但是上级却非常看好我,他们把整个并发模块,都交给了我一个人开发。(难道不是因为经费不足?)这个星期,我必须要完成并发模块中非常重要的一个功能——线程池。为什么要使用线程池作为一个合格的程序员,接到需求,首先我得问自己一句:为什么要做这个需求?为什么需要线程池?就像十多年后,另一个菜鸟在他的博客中说...原创 2019-05-15 18:39:32 · 127 阅读 · 0 评论 -
Java趣谈——如何写出一个高效的页面渲染器
Java趣谈——如何写出一个高效的页面渲染器本集概要:如何对页面渲染进行任务划分? 这些任务要如何并行执行,才能实现最优效率? 如何实现在每张图片下载完成之后马上渲染到页面上? CompletionService的原理是什么?前情回顾:Java趣谈——如何像Tomcat一样处理请求上一集,大雄借助线程池,将老马的单线程Web服务器改造了一把,当然,老马留下来的瑰宝可远远不止一...原创 2019-05-15 18:41:34 · 501 阅读 · 0 评论 -
Java趣谈——如何像Tomcat一样处理请求
Java趣谈——如何像Tomcat一样处理请求本集概要:基于单线程的Web服务器有什么缺点? 给每个请求创建一条线程,这样做有什么坏处? 怎样利用设计模式,解耦任务的创建和任务的执行? 为什么要使用线程池,它能给我们带来什么?前情回顾:Java趣谈——如何构建一个高效且可伸缩的缓存上一集,大雄在哆啦的指导下,开发了一个超级缓存,这段经历让大雄不禁感慨,并发真是一门奇妙的学问。...原创 2019-05-15 18:43:21 · 203 阅读 · 0 评论 -
Java趣谈——如何构建一个高效且可伸缩的缓存
Java趣谈——如何构建一个高效且可伸缩的缓存本集概要:怎样构建一个线程安全而又高效、可伸缩的缓存? 怎样利用设计模式,把缓存做成通用的工具? 除了synchronize和volatile,我们还能使用哪些工具来开发线程安全的代码?前情回顾:Volatile趣谈——我是怎么把贝克汉姆的进球弄丢的大雄开发的门线传感器在曼联和阿森纳的比赛中一鸣惊人,越来越多的客户向公司订购这...原创 2019-05-15 18:44:53 · 158 阅读 · 0 评论 -
如何在Spring Boot中使用TDD写出高质量的接口
如何在Spring Boot中使用TDD写出高质量的接口之前在《如何说服你的同事使用TDD》中介绍了为什么要使用TDD(测试驱动开发),以及如何使用TDD写代码。文章发表后,有同学在评论区中表示文章写得不错,但是举得例子太过脱离实际了,能不能举一个在实际工作中的例子呀。这篇文章,就来分享一下在Spring Boot中,如何使用TDD写出功能健壮、代码整洁的高质量接口。我将用一个简单的案例,...原创 2019-05-15 18:46:49 · 264 阅读 · 0 评论 -
Java 设计类和接口的七条优秀实践清单
Java 设计类和接口的七条优秀实践清单写Java时,其实就是在写各种类和接口,那么在设计类和接口的时候,有哪些优秀实践呢?本文结合《Effective Java》第四章《类和接口》和自己的理解及实践,讲解了设计Java类和接口的优秀指导原则,供您参考。清单1 - 使类和成员的可访问性最小化这个原则,其实就是我们常说的“封装”,也是软件设计的基本原则之一。类与类之间,隐藏...原创 2019-05-15 18:48:59 · 301 阅读 · 0 评论 -
零基础入门学习java第十节:Java中的数组
零基础入门学习java第十节:Java中的数组什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去。那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做成绩统计,如求总分,平均分,方差等的时候,遍历成绩信息又成了一大难题,这个时候,你就需要用到数组了。数组可以很好的解决这两个问题,数组名只...原创 2019-05-24 18:55:55 · 188 阅读 · 0 评论