- 博客(65)
- 收藏
- 关注
原创 Java 实现图片裁剪(附代码) | Java工具类
前言本文提供将图片按照自定义尺寸进行裁剪的Java工具类,一如既往的实用主义。Maven依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version>
2022-01-25 13:27:54 2852
原创 面渣逆袭:Java基础五十三问,快来看看有没有你不会的
家好,我是老三,面渣逆袭 系列继续。这节我们回到梦开始的地方——Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下。想一下,总不能张口高并发、闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻。所以赶紧来看看,这些基础有没有你不会的!Java概述1.什么是Java?下辈子还学JavaPS:碎怂Java,有啥好介绍的。哦,面试啊。Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语
2022-01-24 15:48:23 457
原创 面渣逆袭:Java基础五十三问,快来看看有没有你不会的
家好,我是老三,面渣逆袭 系列继续。这节我们回到梦开始的地方——Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下。想一下,总不能张口高并发、闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻。所以赶紧来看看,这些基础有没有你不会的!Java概述1.什么是Java?下辈子还学JavaPS:碎怂Java,有啥好介绍的。哦,面试啊。Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语
2022-01-24 15:47:30 789
原创 Spring @bean 和 @component 注解有什么区别?
本文打算介绍几个不太容易说出其区别,或者用途的 Spring 注解,比如@Component与@Bean的比较,@ControllerAdvice是如何处理自定义异常的等等。Spring 中的一些注解1. @Component 和 @Bean 的区别是什么? 作用对象不同:@Component注解作用于类,而@Bean注解作用于方法、 @Component通常是通过路径扫描来自动侦测以及自动装配到 Spring 容器中(我们可以使用@ComponentScan注...
2022-01-24 15:35:17 226
原创 新年新气象 给你的banner换个皮肤吧
PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛新年新气象,别光顾着打扮自己,也要打扮下自己吃饭的家伙SpringBoot的banner你在SpringBoot服务每次启动的时候是不是都能看到下面输出的日志(默认的图案格式) . ____ _ __ _ _ /\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )___ | '_ | '_| | '_ / _` | \ \ \ \ \...
2022-01-24 15:31:19 361
原创 kubeadm搭建k8s集群实践
Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署 Kubernetes 集群。 官方地址:kubernetes.io/docs/refere…这个工具能通过两条指令完成一个 kubernetes 集群的部署:1)创建一个 Master 节点 kubeadm init2)将 Node 节点加入到当前集群中 $ kubeadm join <Master 节点的 IP 和端口 >一、安装要求一台或多台机器,操作系统
2022-01-24 14:53:20 838
原创 2022金三银四,面试求生指南
2020年,面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!!一. 面试准备首先,是笔试题,这点是初级程序员绕不过去的坎。笔试题一般的公司都会出的,除非你是大牛,可以选择不做。所以,还是老老实实的准备吧。这里列举下一些比较常见出现的问题JAVA5个常用的java-a
2022-01-24 14:33:28 300
原创 阿里p8从开发、运维两个角度总结了Redis实战经验,看完茅塞顿开
从开发、运维两个角度总结了Redis实战经验,深入浅出地剖析底层实现,包含大规模集群开发与运维的实际案例、应用技巧。前言Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。掌握Redis已经逐步成为开发和运维人员的必备技能之一。本书关注了Redis开发运维的方方面面,尤其对于开发运维中如何提高效率、减少可能遇到的问题进行详细分析,但本书不单单介绍怎么解决这些问题,而是通过对Redi
2022-01-24 14:27:30 189
原创 Java面向对象之封装继承
一、前言我们上次学过java的方法,现在我们来学习新的一篇,也算是java中比较重要的一节了面向对象基础是java中核心。面向对象主要包括封装、继承、多态我们这节主要讲的是封装,在这之前我们先来了解一下类和对象的定义和关系什么是对象?世间一切都是对象,万物解释对象,对象就是看得见摸得着的东西。什么是类?类是现实生活中对具有属性和行为同一类的总称。类和对象的关系?类是对象的抽象化,对象是类的实例化类的定义 ?类是java中的基本概念,java中
2022-01-24 14:19:20 325
原创 深入浅出聊聊Java函数式编程思想
引言一直以来,Java都被认为是一种面向对象的编程语言,“万事万物皆对象”的思想已经深入人心。但随着Java8的发布,一切看起来似乎有些改变。Lambda表达式和Stream的引入,让Java焕发了新的活力,它允许人们可以用函数式编程思维思考问题。本文主要介绍了函数式编程思想在Java中的应用。指令式还是声明式?先看一段代码:计算商品价格的最大值。 我们一般会这样实现:int max = 0;for(int price : prices) { if (max < price
2022-01-24 14:18:03 316
原创 MySQL忘记密码了怎么办?
接手一个项目时,如果上一位负责人没有把项目文档、账号密码整理好是一件很头疼的事情。。 例如,当你想打开MySQL数据库的时候 输入:mysql -u root -p一回车想输入密码,发现密码错误!!# [MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)](https://www.cnblogs.com/gumuzi/p/5711495.html).
2022-01-23 19:43:57 5463
原创 CPU被挖矿,Redis竟是内鬼,
大家好 我是周杰伦却说这一日,Redis正如往常一般工作,不久便收到了一条SAVE命令。虽说这Redis常被用来当做缓存,数据只存在于内存中,却也能通过SAVE命令将内存中的数据保存到磁盘文件中以便持久化存储。只见Redis刚打开文件,准备写入,不知何处突然冲出几个大汉将其擒住。到底是怎么回事?Redis一脸懵。这事还得要从一个月之前说起。挖矿病毒一个月前,突如其来的警报声打破了Linux帝国夜晚的宁静,CPU占用率突然飙升,却不知何人所为。在unhide的帮助下,总算揪出
2022-01-23 19:05:50 157
原创 SpringCloud Gateway 收集输入输出日志
请求响应日志是日常开发调试定位问题的重要手段,在微服务中引入SpringCloud Gateway后我们希望在网关层统一进行日志的收集。本节内容将实现以下两个功能:获取请求的输入输出参数,封装成自定义日志 将日志发送到MongoDB进行存储获取输入输出参数首先我们先定义一个日志体@Datapublic class GatewayLog { /**访问实例*/ private String targetServer; /**请求路径*/ private S
2022-01-23 17:21:05 4190 1
原创 成为一名优秀的架构师需要哪些条件?
什么是架构师成为一名优秀的架构师需要哪些条件?首先需要有扎实的编程理论基础,对软件运作的原理以及算法有深入地理解:其次还需要有丰富的实践,能够将理论与实际相结合。除此之外,从他人优秀的实践经验中学习,是成为卓越架构师最有效的方法。笔者在刚开发微博之初,国内并没有类似社交网络的技术经验,但在国外,Facebook、Twitter等公司的工程师发表的相关实践文章,给了笔者所在团队架构师很多启发,团队也顺利地搭建了自己的架构,成功应对了业务的飞速增长。搭建高并发及高可用大型系统长期都是业界难题,Titte
2022-01-23 16:26:57 3005
原创 快速实现分布式session厉害了
前言我们在开发一个项目时通常需要登录认证,常用的登录认证技术实现框架有Spring Security和shiroSpring SecuritySpring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是保护基于spring的应用程序的事实上的标准。Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以很容易地扩展以满足定制需求,并且Spring Secu
2022-01-23 16:01:07 124
原创 Java将引入新的对象类型来解决内存利用问题?
2022年Java将有什么新的特性和改进,我相信很多Java开发者都想知道。结合Java语言架构师布莱恩·格茨( Brian Goetz)最近的一些分享,胖哥给大家爆个料。老规矩,点赞走起。Valhalla布莱恩·格茨在去年底发表了一篇名为State of Valhalla的文章,里面信息量非常大,里面提到早在2014年Java项目组就启动了一个名叫 Valhalla的项目,这个项目将为 JVM平台带来更加灵活的、扁平化的数据类型。在2021年该项目将有进一步的动作, 值对象(value o...
2022-01-23 15:57:55 118
原创 面试官:Java反射是什么?
一.概念 二.常用方法 三.典型例题 四.Method类 五.数组的反射 六.结束语 一.概念反射就是把Java的各种成分映射成相应的Java类。Class类的构造方法是private,由JVM创建。反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设..
2022-01-23 15:45:16 192
原创 面试官:Redis分布式锁超时了,任务还没执行完怎么办?
今天主要分享的是面试中常见的redis的一些面试内容。如果你正好需要刚好可以帮你回顾一下,如果不需要可以收藏起来后面用到的时候翻出来回顾。一、背景面试官:你们项目中有使用分布式锁么?我:有使用。面试官:你们使用分布式锁主要是为了干啥?我:多节点并发访问同一份数据的时候,防止造成脏数据。面试官:都有哪些方案实现分布式锁?你们用的是哪一种?我:有基于zk的临时顺序节点的方案,有redis的setnx和指定expire超时时间的方案。面试官:你们是用哪种方案呢?我:用的是red
2022-01-23 14:59:08 625
原创 程序员毛毛的自我救赎之路
“枯燥乏味的一天,又tm要开始了”。早上10:00, 程序员毛毛带着路上买的早餐,打开24英寸的显示屏,去某论坛查一下昨天没有解决的bug。9 个小时增删改查、搬砖写代码的一天又要开始了。这是他来这家创业公司的第2个年头。刚毕业的时候,他踌躇满志,按照当时定的计划,这时候应该在阿里,混到了 P6。可是现在他在这里,一家去年终于拿到 A+轮的创业公司,拿着8k的月薪。你觉得他甘心吗?当然不甘心。然后他利用每天上下班的 2 个小时,在车上看视频学技术。但是在实际的工作中,
2022-01-22 21:59:53 178
原创 深入分析G1垃圾收集实现原理
1 与垃圾收集器有关的算法 在分析G1前先简单回顾一下与垃圾收集器相关的算法。通常所谓的垃圾收集器更多地是指跟踪垃圾收集器(Tracing Garbage Collection),而不是引用计数(Reference Counting)垃圾收集器。跟踪垃圾收集器采用可达性分析方法确定哪些对象要被回收,通常会选取一些对象作为GC Roots,如果对象能直接或间接地被GC Roots中的对象引用,则认为该对象可达(存活对象)不能被回收,否则该对象不可达(垃圾对象)要被回收。1.1 三色标记算法...
2022-01-22 20:45:11 1142 1
原创 性能调优--如何排查线上进程是否有死锁?
stack可以用来查看堆栈使用情况,以及进程死锁情况。下面就来看看如何排查进程死锁还是通过案例来分析package com.lxl.jvm;public class DeadLockTest { private static Object lock1 = new Object(); private static Object lock2 = new Object(); public static void main(String[] args) { ...
2022-01-22 20:34:05 1075
原创 多线程的风险
安全性问题使用多线程带来的最糟糕的问题就是安全性问题。书中以一个线程不安全的UnsafeSequence类为例:public class UnsafeSequence { private int value; /** * 返回一个唯一的数值 * @return */ public int getNext() { return value++; } public int getValue() {
2022-01-22 15:38:33 263
原创 Spring循环依赖原理
Spring循环依赖的原理解析1、什么是循环依赖? 我们使用Spring的时候,在一个对象中注入另一个对象,但是另外的一个对象中也包含该对象。如图:在Student中包含了teacher的一个属性;在Teacher中包含有student的属性。这样就形成了一个循环依赖。2、代码描述xml配置文件testCycle.javaprivate static void testCycle(){ ClassPathXmlApplicationContext appl
2022-01-22 15:30:10 117
原创 2022新鲜出炉的美团、字节、阿里、腾讯面经,室友已斩获8个大厂offer
过去几个月面的几家大厂,均拿到 offer,最终去了字节跳动。时间有点久了,凭着记忆写下这份面经,有些问题已经记不太清了。总体感受:每个大厂问项目问得特别细,虽然下面的面经都只用了一句话去概括,但在实际面试过程当中,项目这一块占了整个面试流程的很大一部分,相反纯技术问题的占比都比较小。 面试题几乎类似,比较简单,也很常见。美团通常是两轮技术面试,一轮 HR 面试,第一面会有一道算法题,有的时候会有三轮技术面试。一面一道算法题,十分钟左右时间,要求能正常运行,通过给出的测试用例。
2022-01-22 14:57:12 309
原创 不懂就问:为什么MySQL不建议使用NULL作为列默认值?
通常能听到的答案是 使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道 IS NULL会使用索引.所以上述说法有漏洞.着急的人拉到最下边看结论PrefaceNull is a special constraint of columns. The columns in table will be added null constrain if you do not define the column with “not null” key words explicitly ..
2022-01-22 14:41:29 771
原创 jvm垃圾回收中有那些算法
1 什么时候回收垃圾?1、什么场景下该使用什么垃圾回收策略?在对内存要求苛刻的场景:想办法提高对象的回收效率,多回收掉一些对象,腾出更多内存。在CPU使用率高的情况下:降低高并发时垃圾回收的频率,让CPU更多的去执行你的业务而不是垃圾回收。2、垃圾回收发生在哪些区域?堆(回收对象)、方法区(不用的常量、类)3、对象什么时候被回收?引用计数法:通过对象的引用计数器来判断对象是否被引用。无法处理循环引用问题。A --> B --> C --> D -->
2022-01-22 14:16:02 236
原创 Java集合经典26问
今天给大家分享 Java集合常考的面试题,准备找工作的小伙伴赶紧收藏起来~常见的集合有哪些?Java集合类主要由两个接口 Collection和 Map派生出来的,Collection有三个子接口:List、Set、Queue。Java集合框架图如下:List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合。Map代表的是存储key-value对的集合,可根据元素的key来访问value。集合体系中常...
2022-01-22 13:37:05 462
原创 你真的了解反射吗?
1. 啥是反射1.初识反射刚开始学反射的时候,我是一脸懵逼的,这玩意真的是“抽象的妈妈给抽象开门-抽象到家了。”为什么创建对象要先获取 Class 对象?这不多此一举吗?我直接 new 一下不是更简单吗?什么是程序运行时获取类的属性和方法?平时都是程序编译出错了再修改代码,我为什么要考虑程序运行时的状态?我平时开发也用不到,学这玩意有啥用?后来学了注解、spring、SpringMVC 等技术之后,发现反射无处不在。2.JVM 加载类我们写的 java 程序要放到 JVM 中
2022-01-22 13:34:53 88
原创 由十多位架构师打造的《面试突击核心讲》到底有多强?肝完金三银四稳了。
又是一年一度的 “金三银四” 春招大热门,为助力广大程序员朋友 “面试造火箭”,小编今天给大家分享的便是这份马士兵内部的面试神技——1658页《Java面试突击核心讲》!我的室友靠着这份资料成功入职腾讯,下面我带大家来看看都有那些内容;注:这份神技是由内部十余名Java架构讲师纯手打总结的2022秋招最新版面试突击文档,阵容可谓是非常豪华!主要包含:Java基础、JVM、多线程、MySQL、Spring、SpringBoot、SpringCloud、分布式、Dubbo、Mybatis、Redis.
2022-01-21 19:23:41 366
原创 Spring事务失效的常见场景
前言对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。确实,spring事务用起来贼爽,就用一个简单的注解:@Transactional,就能轻松搞定事务。我猜大部分小伙伴也是这样用的,而且一直用一直爽。但如果你使用不当,它也会坑你于无形。今天我们就一起聊聊,事务失效的一些场景,说不定你已经中招了..
2022-01-21 17:31:02 133
原创 SpringBoot+flowable快速实现工作流
总览 使用flowable自带的flowable-ui制作流程图 使用springboot开发流程使用的接口完成流程的业务功能 一、flowable-ui部署运行flowable-6.6.0 运行 官方demo参考文档:flowable.com/open-source…1、从官网下载flowable-6.6.0 :https://github.com/flowable/flowable-engine/releases/download/flowable-6.6.0/.
2022-01-21 17:28:54 406
原创 是时候检查一下使用索引的姿势是否正确了
索引,可以有效提高我们的数据库搜索效率,各种数据库优化八股文里都有相关的知识点可背,不过单纯的被条目其实很容易忘记。所以松哥想通过几篇文章,和大家仔细聊一聊索引的正确使用姿势,结合一些具体的例子来帮助大家理解索引优化,这是一个小小的系列,可能会有几篇文章,今天先来第一篇。1. 索引列独立当我们将带有索引的列作为搜索的条件的时候,需要确保索引不在表达式中,索引中也不包含各种运算。我举个简单例子,假设我有如下一张表:一个 user 表,里边就四个字段,每个字段上都建了索引,现在有三条测试
2022-01-21 17:26:33 60
原创 如何打造一个能自动回复的钉钉机器人
一、前情回顾在之前分享的文章如何用Python发送告警通知到钉钉?中我们实现了钉钉群机器人定时/报警发送自定义消息,应用于一般的监控场景是很适用的,比如:每日早上发送自己关注的股票/基金开盘、走势数据、股票跌幅报警等。但是在其他场景,比如:知识库查询、内容验证等,这类交互式的查询就没法实现,这个时候,我们需要更进阶的机器人:钉钉企业机器人,本文将手把手教你如何创建企业机器人,实现交互式查询。二、分享概要系统:阿里云ECS共享型n4服务器 1核2g 存储50g环境:自带python3.6
2022-01-21 17:15:51 9887 11
原创 教你用Java开发一个简单的JVM
一、前言几年前,接到一个开发任务:用Java开发能运行Java智能合约的虚拟机。在开发Java智能合约时,只能使用智能合约SDK提供的类和一些Java常用类(8种基本数据类型包装类;String、BigInteger、BigDecimal、List、Map、Set 相关的类)。完整的Java智能合约虚拟机比较复杂,且要保存Java智能合约状态。这篇文章仅介绍一个简单JVM实现,支持少量字节码。参考 Java 虚拟机规范(Java SE 8),里面写到:要正确实现 Java 虚拟机,只需能够读取c..
2022-01-21 16:56:45 1265
原创 “金三银四”该如何跳槽涨薪进大厂?
前言这才刚刚进入1月,我就看到了许多朋友在焦急的准备“金三银四”跳槽面试,对于学历还算优秀的大学生来说,这是一次离大厂最近的机会,毕竟是应届毕业生,不会对技术有非常严格的要求。而对于工作了一两年的朋友来说,这段时间加强技术能力,多掌握一些Java核心技术点是重中之重。根据小编多年面试经验来说,最重要、最快能掌握的Java开发技术无非就那几个:Java基础:注解、反射、异常、序列化、集合等 JVM 多线程 SSM框架 设计模式 算法 数据库 网络Java入坑与进阶核心技
2022-01-21 14:26:24 128
原创 synchronized解析及锁膨胀过程,面试再也不怕了
synchronized这个关键字相信大家都不陌生,在多线程并发的情况下使用它来保障共享资源的安全应该是最简单的方式。但是为了高效不应该因为其使用简单而放肆的滥用它,我们应该知其然而知其所以然,这样才能更好的高效开发并且提升自己的知识深度。那我废话不多说了,咱们开始吧!一、简单概述synchronized是Java为多线程并发情况提供的一种保障共享资源安全的一个关键字,它需要作用于对象上。1.1 synchronized特性1.1.1 原子性原子性是指一个操作或者一组操作,要么全部执
2022-01-21 14:20:00 1060
原创 简单谈谈动态代理
简单谈谈动态代理什么是代理模式?为其他对象提供一个代理以控制对某个对象的访问。代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。其实就是代理类为被代理类进行预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行
2022-01-21 14:17:33 80
原创 年薪30wJava岗需要掌握什么?看完我悟了
前言一份月薪30K的java开发岗位工作要求是怎样的呢?面试都会问到哪些呢?任职要求:1、计算机或相关专业本科(或以上)学历,具备3年以上Java服务端开发经验,熟悉常用的Java开源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和实现机制;2、擅长Java Web服务开发,熟悉掌握各种Web应用开发模式,具有丰富的高并发、大数据系统的设计、研发、调试经验者优先;3、精通Java及面向对象设计开发,熟悉常见设计模式,
2022-01-20 17:28:38 107
原创 Java内存模型及线程安全高性能编程专题
Java内存模型 vs JVM运行时数据区为什么java 能在不同的平台上跑?因为字节码是在虚拟机上跑,所以平台无关。遵循《Java虚拟机规范》初看Java内存模型来看看大家都是怎么定义的 :Java虚拟机可以同时支持多个执行线程,若未正确同步,线程的行为可能会出现混淆和违反直觉。多线程程序的语义,它包含了,当多个线程修改了共享内存中的值时,应该读取到哪个值的规则。由于这部分规范类似于不同硬件体系结构的内存模型,因此这些语义称为Java编程语言内存模型。这些语义没有规定如何执..
2022-01-20 15:36:21 1831
原创 Mybatis疑难事件簿:‘#‘传递布尔值无效问题
一、问题现场 MySQL自5.7版本就开始提供JSON类型,本次问题就是在使用JSON类型时出现的MySQL服务可以正常查询而使用Mybatis查询失效问题。 具体表现为在使用Mybatis(这里需要注意一下,笔者实际使用了其增强版Mybatis-Plus)按照JSON类型字段中某个key的指定value进行条件查询时出现无法查询出结果,在参数值传递时使用了'#'进行变量值传递,查询代码如下: @Select("select * from `task_info` where task..
2022-01-20 15:13:38 744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人