自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 利用 Spring 自动类型转换与回调模式写出优雅的代码

当我们使用 dubbo 或者 feign 进行 RPC 调用用时,通常的调用模板方式如下:public BizResponse method(BizRequest request){ RpcRequest rpcRequest = buildRpcRequest(); RpcReponse reuslt = xxxFacade.invoke(rpcRequest); // 判断响应码与响应对象 return buildResponse(result);}privat..

2020-09-14 09:04:04 136

原创 JAVA面试基础(总结了很多)

最近帮整理了一份JAVA的面试基础,不过很基础后面还回继续更新。java的专业技能2.1 java的基础部分2.1.1 简单讲一下java的跨平台原理 由于各操作系统(windows,liunx等)支持的指令集,不是完全一致的。就会让我们的程序在不同的操作系统上要执行不同程序代码。Java开发了适用于不同操作系统及位数的java虚拟机来屏蔽个系统之间的差异,提供统一的接口。对于我们java开发者而言,你只需要在不同的系统上安装对应的不同java虚拟机、这时你的java程序...

2020-09-12 09:29:58 169

原创 Java基础语法_Java运行环境

二进制 计算机中全部采用二进制数表示,它只包含0、1两个数,逢二进一,1+1=10.每个0或者1叫一个bit(位)。字节 字节是计算机中最小的计算单位。计算机储存任何数据,都是以字节形式储存,右键点击文件属性,可以查看文件的直接大小。8 bit = 1 Byte 1024 Byte = 1 KB 1024 KB = 1 MB 1024 MB = 1 GB 1024 GB = 1 TB 1024 TB = 1 PB 1024 PB = 1 EB 1024 EB = 1 ZB 命令提示符 打开:W...

2020-09-11 10:07:31 129

原创 3年土木工程转行,自学Java8个多月,终于获得一份15K的薪资!

从正式开始学习Java到现在差不多8个月的时间了,虽说进展比较缓慢,但多少也算有些进步和体会,现在想把把这大半年来的学习情况简单梳理一下,既是给自己做个总结,也希望能给与我情况类似的朋友们一点帮助。本篇帖子有几千字,是我辛苦写了几天的总结,也许对初学者有用,建议大家耐心看完。一.我的情况作为一名非技术类岗位在职人士,学习Java不以转行求职为目标、不以提升工作能力为目的、不以直接经济利益为诉求,仅仅当作一项业余活动来看待。当然,这种情况下学习的劣势是显而易见的:· 没有明确的目标,学习...

2020-09-08 11:47:57 209

原创 2020年最新Java后端学习路线,鼓励所有想要踏入Java行业的初学者!

大概1年前,我把自己的实践经验整理成几篇文章,目的是帮助后来者高效的学习Java。 在过去的一年里,根据读者的反馈,以及我个人的思考,我觉得有必要基于这些文章,提供给读者一个凝练,且不失细节的“Java学习路线图”。 该路线图在保留了文章的核心架构外,也做了一些优化,包括: 1.更详细的学习内容。 2.更精确的学习时间。 3.优化学习方法,避开前端知识。 4.及时引入Jar包管理(Maven)。 下面是具体的 “Java学习路线图”:在图中,我把Java学习分成3个阶段: 1.基础知识 2.Sp..

2020-09-07 10:36:42 290

原创 昨天和一个字节跳动的朋友聊了聊他们团队对于Java工程师的能力要求

昨天和一个字节跳动的朋友闲聊,他说根据最近招聘 Java 工程师的经验来看,大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎。为啥这么说呢?因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。但如果一个工程师一直停留在业务开发,一直沉浸于工具的使用熟练度,那他自然就会遇到能力瓶颈。这个瓶颈就是前面说的那道坎,跳过去了,你就发现了一片新天地,可以在下一个区间里继续生长。跳不过...

2020-09-05 13:29:00 412

原创 JAVA 8 新特性知识总结

JAVA8 新特性Java 8 应该是目前项目中使用最多的版本,之前有使用过它的一些新特性,了解一些基本的用法,但是对于一些理论性的概念不是很清楚,最近看了一些教程和博客,收获很大,在这里记录一下。介绍Java 8 新增了非常多的新特性,包括一些数据结构的优化,JVM的优化,这里只记录一些日常中用到的新特性: Lambda表达式 方法引用 函数式接口 默认方法 Stream Optional 新的日期API ...

2020-09-04 11:19:39 142

原创 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

业务背景首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传。而第三方接口返回的数据是JSON格式的,其中物流信息却藏的十分深,如下面所示,JSON 节点是这样的:xxxOrder > xxxShippingInfo > xxxShipmentDetails > xxxTrackingInfo > trackingNumber, trackingLink基本实现因为...

2020-09-03 11:08:53 90

原创 java如何使用JWE进行加密

JWE全称是Json Web Encripytion ,即json web 加密,其本身是由一系列标准构成的,本文章讲解的是采用软加密的方式:JWE加密分为RSA公钥和EC公钥两种模式,RSA公钥采用的是传统大质数相乘原理,ECC公钥为椭圆曲线算法原理;相对来说ECC模式要比RSA模式快;当RSA加密需要的秘钥长度越来越长时,相应的运算也越来越耗时,这几乎呈指数级增长;ECC模式要比RSA模式好很多,当所需的秘钥长度越来越长时,ECC的cpu消耗是线性增长的。本文章讲解的是RSA的方式进行...

2020-09-02 10:44:01 1097

转载 为什么总是有人在说现在Java要求越来越高?原因到底是什么?

老是听到xxx要求越来越高的声音,其实回顾多年的职业生涯,作为经常当面试官的我,出来说句公道话,其实大厂技术招聘层面的要求一只就在那里,对核心技能的要求并没有太大的改变。可能你要反驳分布式、高并发、多线程,spring boot 、 spring clould 、Hadoop、Spark等等技术层出不穷,作为新晋的开发者必须跟上云云。请你先冷静下,这些技术名词,更多要求的是术的层面而非道的层面。接下来我们就面试时对java研发工程师的要求来掰扯掰扯,看看到底是要求变高了,还是一直一来...

2020-09-01 10:23:11 154

原创 请分清楚Java内存区域和Java内存模型

java内存区域是java虚拟机在执行java程序的时候会把它所管理的内存进行划分不同的数据区域。但是java内存模型是为了屏蔽各种硬件和操作系统的内存访问的差异,已实现java程序在不同的操作系统中都能达到一致的访问效果Java内存区域线程共享区:堆:堆可分为eden区和survior to和survior from 区 刚创建的对象,且堆内存够放下这个对象,都会放在eden区。方法区: 存储已经被加载的类信息,常量,静态变量,即时编译后的代码等数据。在hotspot虚拟机中方法区也被称..

2020-08-31 17:20:57 85

原创 半路出家自学Java,几个月的努力,终于拿到了一份offer

上海的一家软件公司,税前11K,五险一金,996的工作制,已经上班了一个月,说下自己的感受。因为我专科毕业两年,所以我包装了两年的工作经验,目前平时的工作就是增删改查,内容比较单一简单。公司的工作技术氛围一般,业务线也比较单一,感觉在这家公司没有太大的发展,但是想在这家公司积累工作经验,等到明年初跳槽,到时候包装三年工作经验,去一家有发展前途的公司,应该可以拿到15K左右的薪资。我是怎么自学成功的?我跟大家一样,也是边工作边学习,或许跟大多数人比,我的决心要更大一些。因为我明白,我当时...

2020-08-30 12:26:53 184

原创 Java面试解析总结:Java+Redis+数据库+算法与数据结构+分布式

金九银十即将到来,给大家整理了今年来最经典的面试真题1000+道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、Java并发、JVM,Redis、设计模式,Spring / Spring MVC,等专题的经典面试真题,和详细分析。数据库篇 事务四大特性(ACID)原子性、一致性、隔离性、持久性? 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? MySQL常见的三种存储引擎(InnoDB、MyISAM、M..

2020-08-29 14:24:38 134

原创 面试官:你知道什么叫作Java类吗?sorry sir,我不知道什么叫做Java累

最近在刷面试题的时候遇到了一道比较有意思的题目。具体如下image.png不好意思,放错图了,下面的才是class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; public static int count2 = 0; private SingleTon() { count1++; ..

2020-08-26 12:50:49 224

原创 Java程序员就业真的很难吗?

 Java程序员就业真的很难吗?这个是老话题了,Java程序员远远没有饱和,年薪10万+是很正常的一个薪酬水平。现在Java程序员挺多的,但是职位需求量更大,特别是能干实干或优秀的程序员是相当缺乏的,没存在饱和一说。  从经验来说,如果你是一位实干,又有强烈改变际遇的意志力的人,我建议可以做Java技术开发,至少你的付出会有收获(技术领域内相对公平)!  近20年来Java程序员的工资一直是在稳中有升的状态,极端点的反例来说明,就算那些具有3~5年开发经验的中下水平(注意:中下,负能)的工程师,拥有

2020-08-24 16:12:09 268

原创 掌握了这30道MySQL面试题,看完吊打面试官!

一个典型的互联网产品架构包含接入层、逻辑处理层以及存储层,其中存储层承载着数据落地和持久化的任务,同时给逻辑处理层提供数据查询功能支持。说到存储层就要说到数据库,数据库知识掌握程度也是面试考察的知识点。典型服务架构数据库分为关系型数据库和非关系型数据库,也就是我们常说的 SQL 和 NoSQL,这两个方向的数据库代表产品分别是MySQL 和 Redis ,这次我们主要以面试问答的形式,来学习下关系型数据库 MySQL 基础知识。面试开始,准备接受面试官灵魂拷问吧!关系型数据库什么..

2020-08-22 14:44:30 228

转载 三万字最牛的100道软件测试面试题+答案纯干货,教你如何跟面试官‘抬杠’(一)

【纯干货!!!】花费了整整3天,整理出来的全网最实用软件测试面试大全,一共30道题目+答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告,全文共12000+字,涵盖软件测试面试可能遇到的所有问题,希望对大家有帮助,不过大家最好不要硬背,实战大于理论。祝大家面试顺利!1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?首先,将问题提交到缺陷管理库里面进行备案。然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有..

2020-08-20 00:34:35 712

原创 Java常见面试题 非常实用【个人经验】

Java 面试题一. 容器部分二. 多线程部分三. SpringMvc部分四. Mybatis部分五. MySQL部分六. Redis部分七. RabbitMQ部分八. JVM虚拟机部分九. 算法知识部分十. 其他面试部分2|1更新 时间:2020/08/10 内容: JVM虚拟机部分 预更: 算法部分 2|2容器部分面试题Java 容器都有哪些 Collection 的子类 ...

2020-08-14 14:22:04 276

转载 中高级面试必备:快速入门数据结构和算法

一 前言1 为什么要学习算法和数据结构?解决特定问题。深度优化程序性能的基础。学习一种思想:如何把现实问题转化为计算机语言表示。2 业务开发要掌握到程度?了解常见数据结构和算法,沟通没有障碍。活学活用:遇到问题时知道要用什么数据结构和算法去优化。二 数据结构基础1 什么是数据结构?数据结构是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据。数据结构是算法的基石。如果把算法比喻成美丽灵动的舞者,那么数据结构就是舞者脚下广阔而坚实的舞台。2 物理结构和逻辑结构

2020-08-12 14:28:15 148

原创 关于AQS源码解析(二)

概述1.AQS共享模式的使用2.AQS共享模式下加锁源码分析3.AQS共享模式下解锁源码分析第1节 AQS共享模式的使用信号量Semaphore其实就是通过AQS共享模式实现的共享锁。Semaphore通常用于并发控制。Semaphore使用方式如下。public class SemaphoreDemo { /** * 限定线程数量 */ private static final Semaphore SEMAPHORE = new Semaphore(3);

2020-06-16 20:37:22 169

原创 关于AQS源码解析(一)

AQS源码解析(1)——独占模式概述 目录1.AQS相关类图2.AQS的父类AOS源码解析3.AQS的独占锁的加锁源码解析4.AQS的独占锁的解锁源码解析第1节 AQS相关类图二话不说,先来一张图,说明一下AbstractQueuedSynchronizer(简称AQS或者同步器)在并发编程中的重要性。从类图中可以看出,ThreadPoolExecutor(线程池)的工作线程Work类,ReentrantLock(重入锁)的内部类Sync的两个子类FairSync(公平锁)和Nonfai

2020-06-15 21:44:35 138

原创 最清晰明了的ReentrantLock源码解析,你懂了吗?

概述1.ReentrantLock用法2.Sync源码3.公平锁模式4.非公平锁模式第1节 ReentrantLock用法ReentrantLock公平锁基本用法如下。public class ReentrantLockTest { /** * 公平锁模式 */ private static Lock lock = new ReentrantLock(true); /** * 非公平锁模式 */// priva

2020-06-12 21:45:15 174

原创 Redis Pipeline管道命令使用

概述 目录1.Redis单条命令使用场景2.Redis单条命令执行耗时3.Redis连接池4.Redis Pipeline管道命令的使用5.总结本文源码地址:https://github.com/online-demo/redis-pipeline.git第1节 Redis单条命令使用场景Redis客户端连接到Redis服务端执行一条命令需要经历的步骤如下:上过程称为Round Trip Time(RTT,往返时间),mget和mset命令节约了RTT,但是大部分指令不支持批量操作

2020-06-09 21:05:56 1147

原创 高性能原子类的使用

高性能原子类的使用/** * @Author: 无双老师【云析学院:http://yunxiedu.net QQ:3190976240 email:zhouguanya20@163.com】 * @Date: 2020-04-05 16:28 * @Description: LongAdder使用姿势 */public class LongAdderDemo { public static void main(String[] args) { LongAdder long

2020-06-06 17:04:57 156

原创 面试必考——线程池原理概述

前言线程池的源码解析较为繁琐。各位同学必须先大体上理解线程池的核心原理后,方可进入线程池的源码分析过程。corePoolSize核心线程线程池的基本大小,即在没有任务需要执行的时候线程池的大小,并且只有在工作队列满了的情况下才会创建超出这个数量的线程。核心线程是否会被回收?1.核心线程将一直保存在线程池中2.哪怕核心线程是处于空闲状态,也可以不回收3.allowCoreThreadTimeOut参数可以控制是否回收核心线程4.在刚刚创建线程池的时候,核心线程并不会立即启动,而是要等到有任务提

2020-06-05 22:10:20 182

原创 面试必考——线程池源码解析之线程池的状态

线程池的状态RUNNING:接收新的任务,执行阻塞队列中的任务SHUTDOWN:不接受新任务,但是仍然可以处理阻塞队列中的任务STOP:不接受新任务,不处理阻塞队列中的任务,中断正在处理的任务TIDYING:所有任务已终止,workerCount(工作线程数等于0),进入TIDYING状态将会执行terminated()方法TERMINATED:terminated()方法执行完成后进入TERMINATED状态线程池状态转换如下:各运行状态的表示方式:// runState is stor

2020-06-04 20:26:49 176

原创 程序员年薪百万必备的生存技能,Java线程池的源码及注释

Java线程池execute方法源码及注释/** * 执行任务的方法 */public void execute(Runnable command) { // 如果command为空,将抛出NullPointerException if (command == null) throw new NullPointerException(); /* * 处理过程分为以下3步骤: * * 1. 如果线程池内的线程数小于corePoolSize, * 则创建新的核心线程执行任务,参

2020-06-02 19:48:25 120

原创 花椒敏感词系统

花椒敏感词系统背景介绍直播系统主要是以内容为主,好的内容可以吸引用户来欣赏,也能为公司带来可观的收益,既然有传播的入口,那么必然有负面内容的出现,随着平台用户量不断扩大,内容的监管也是必不可少的一个环节,比如国家监管部门要求拦截词语包括涉政、非法、宗教、暴恐、版权等,以及平台自身需要拦截的词语包括竞品挖人、低俗、广告等垃圾词,那么我们本章就从文本内容的管控角度介绍下花椒敏感词服务的定制和应用。系统介绍采用GO语言开发,基于开源sego分词服务进行改造升级,将花椒自维护的敏感词库以秒级别自动加载,自动

2020-05-16 16:21:03 600

空空如也

空空如也

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

TA关注的人

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