自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享

这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯、京东、百度等大厂 offer 的经历。文章内容很全面、真实,相信可以对正在准备面试的小伙伴有帮助!看到公众号上逐渐的放出了 2022 的秋招信息,意识到又一年的秋招大戏要开始了,也不由的想起了去年这会的自己。就想写这篇文章记录一下曾经的秋招之路,也希望能帮助到看到这篇文章的各位。个人简介不用太多介绍,也不用太多指教,三秒钟之内就能让大家尖叫...嗯...好了,不闹了。开始!我是 2021 年毕业的研究

2021-12-29 21:31:21 297 1

原创 针对面试的各种最优解以及该做的准备 java面试

应聘相关声明:1,程序员相关的哈2,万事无定论,比如说,就算你小学毕业,但是java基础却扎实到变态,我相信open的公司还是会给你机会的。3,心态很重要,虽然日常的心态不容易控制,面试那俩小时的心态,只要你想,就能控制。1,先来一份前辈的劝戒1,坚持三年 ,不管在哪干,有一个好的平台,坚持三年以上才能出效果。2,如果跳的话,新公司需要稳定,最少过了B轮融资,,五万比一是创业型公司的失败率3,不要着急,不要比较为了5000块的工资差价跳,不值得跳,从一万到三万,并且有一个好的

2021-12-29 21:25:54 149

原创 深入 Java 线程池:从设计思想到源码解读

为什么需要线程池我们知道创建线程的常用方式就是 new Thread(),而每一次 new Thread()都会重新创建一个线程,而线程的创建和销毁都需要耗时的,不仅会消耗系统资源,还会降低系统的稳定性。在 jdk1.5 的 JUC 包中有一个 Executors,他能使我们创建的线程得到复用,不会频繁的创建和销毁线程。线程池首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务..

2021-12-29 21:19:45 180

原创 利用 Java Agent 动态修补 Log4j2 漏洞的好方法被我找到了

1、前言Apache Log4j2 JNDI 注入漏洞(CVE-2021-44228)持续发酵,目前网络上提供了多种修补方案,如更新至最新版本、通过配置禁用 lookup 特性、删除org/apache/logging/log4j/core/lookup/JndiLookup.class类等,这些方法都能有效修补该漏洞,受 NCCGROUP 的项目log4j-jndi-be-gone启发,笔者将分享一个通过 java agent 修改 jvm 字节码的方式动态 patch Log4j2 漏洞的方...

2021-12-29 20:38:20 3368

原创 【源码面经】Java源码系列-ArrayList与LinkedList

ArrayList的大小是如何自动增加的 什么情况下你会使用ArrayList?什么时候你会选择LinkedList? 如何复制某个ArrayList到另一个ArrayList中去 在索引中ArrayList的增加或者删除某个对象的运行过程?效率很低吗?解释一下为什么? ArrayList插入删除一定慢么? ArrayList的遍历和LinkedList遍历性能比较如何? ArrayList是线程安全的么? ArrayList如何remove不想看源码解析的同学,可以直接去最下方查看答案

2021-12-29 20:22:17 3654

原创 Java GUI 桌面应用开发

前言虽然现在已经很少项目会涉及GUI技术,但作为一个合格的Java开发工程师,还是得了解才得本文记录,idea使用JFormDesigner插件进行Java GUI 桌面应用开发GUI Swing图形化的用户界面(Graphical User Interface,简称GUI),java提供了一套可以轻松构建GUI的工具GUI开发包:java.awt 包: 主要提供字体/布局管理器javax.swing 包:主要提供各种组件(窗口/按钮/文本框),商业开发常用java.awt.

2021-12-29 20:19:54 10217 1

原创 学习Java对网络安全的重要性,网络安全由Java守护

作为新一代威胁的出现,Java已经成为包括网络安全在内的应用程序最常用的编程语言之一。如果你从事应用程序开发,你将知道Java在日常使用中无处不在。了解这种语言对网络安全的职业生涯很有用。话虽如此,学习如何阅读和编程Java以及它在网络安全领域的价值是至关重要的。这将使你比黑客和其他恶意方领先一步。这就是为什么学习Java是网络安全的关键一步。Java在网络安全方面有自己的优缺点在保护用户数据时,重要的是要记住,仅仅了解Java或任何编程语言是不够的。了解编程语言的优缺点很重要,这可以从对语

2021-12-29 20:04:12 298

原创 高校实习生三跨各种大厂Java岗位的经验之谈

这是一篇迟到了几个月的总结。此时,我回到本科学校,坐在奋斗了2年多的自习室里敲下了文章的开头,也算是有始有终吧。一、开篇各位在网上应该还能搜到一篇“四跨考生的面经”,是的,那就是我牛逼的研究生舍友写的,鉴于我们都是大土建行业出身,所以在这里就无耻地剽窃了一下他的标题。本人作为某211院校某土木专业下属二级专业的学生,大二时通过知乎发现本专业前景堪忧(改变人生的一个知乎问题!)早早地做出了转行的打算。承蒙南大不弃,最后跨专业保研到了南大软院,事实证明,学校的名声在春招时给我带来了很大的帮助,掩盖了跨

2021-12-29 19:43:28 167

原创 学会这些,阿里offer不是手到擒来嘛,Java研发

从四月开始一直准备实习面试,经历过TX HR面挂,阿里内推简历面挂(第一面就是阿里 简历面紧张的话都不会说)。最终阿里自主投递六轮面终于上岸!(目标就是AT,B就不考虑了,总觉得B厂连自己的核心搜索都做不好,居然将未来压在虚无缥缈的AI上)一、自我总结:1)首先最重要的一点。对自己的要求高点。不要以简单的实习生来要求自己。你要想 你会的别人都会 你的核心竞争力是什么呢。所以楼主建议以Java高级工程师来要求自己。不会的就学嘛。人面对未知的事物 本能反应是恐惧与退缩。可当你尝试去理解它 运用它 你会发

2021-12-28 14:40:46 131 3

原创 Java正则表达式笔记总结

一、简介最近做一个web探测的项目,在项目中多处用到java正则表达式,今天将回顾的正则表达式做一个梳理,本文属于看完廖大佬笔记后的梳理,仅为平时参考。二、学习资料java正则表达式的学习参考以下学习资料即可:(1)菜鸟教程:菜鸟教程的正则基础基本讲的很可以了(2)廖雪峰的官方网站——Java篇:廖大佬的Java教程还是讲的非常清晰的三、知识总结1、匹配规则(1)单个匹配规则<1>匹配任意字符我们使用.匹配一个任意字符。例如:正则表达式a....

2021-12-21 21:13:07 274

原创 java多线程6:volatile关键字

上文说到了synchronized,那么就不得不说下 volatile关键字了,它们两者经常协同处理多线程的安全问题。volatile保证可见性那么volatile的作用是什么呢?在jvm运行时刻内存的分配中有一个内存区域是jvm虚拟机栈,每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问某一个对象时候值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,建立一个变量副本,之后线程就不再和对象在堆内存变量值.

2021-12-21 21:09:28 201

原创 Java Agent到内存马

前言今天看到一篇文章,写关于JAVA Agent相关的资料,里面提到了Java Agent的两种实现方法: 实现premain方法,在JVM启动前加载 实现agentmain方法,在JVM启动后attach加载 因为最近流行破解CobaltStrike不再直接使用反编译打包源码了,而是使用JAVA Agent进行提前字节码修改。并且文章中也提到了javassist工具,我之前也用过javassist工具进行破解过Charles,因此抱着学习和复习的态度...

2021-12-21 21:08:06 192

原创 再严重的 Log4j2 漏洞也伤害不了 Java

12 月 10 日凌晨,Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害。Log4j 是一个被许多 Java 应用程序使用的库,它是迄今为止最普遍的 Java 库之一。Log4j 安全问题围绕 Log4j 库中的一个错误展开,该错误可能允许攻击者在使用 Log4j 写出日志消息的系统上执行任意代码。这个安全漏洞影响广泛,该漏洞一旦被攻击者利用会造成严重危害。随着 Log4j 安全漏洞问题的持续发酵,一些天天唱衰 Ja

2021-12-21 20:42:53 215

原创 深入浅出 Java 中枚举的实现原理

基本概述在 JDK1.5 之前,通过定义常量使用的都是: public static fianl。而枚举的设计,就是把相关的常量分组到一个枚举类型里,方便创建和管理。比如我们要定义一个颜色常量:public enum Colour { RED, YELLOW, BLUE, GREEN}这段代码通过底层编译后,实际创建了4个枚举对象:new Enum<EnumTest>("RED", 0);new Enum<EnumTest>("YELLOW", .

2021-12-21 19:07:53 172

原创 java多线程5:线程间的通信

在多线程系统中,彼此之间的通信协作非常重要,下面来聊聊线程间通信的几种方式。wait/notify想像一个场景,A、B两个线程操作一个共享List对象,A对List进行add操作,B线程等待List的size=500时就打印记录日志,这要怎么处理呢?一个办法就是,B线程while (true) { if(List.size == 500) {打印日志} },这样两个线程之间就有了通信,B线程不断通过轮训来检测List.size == 500 这个条件。这样可以实现我们的需求,但是也带来了问.

2021-12-21 16:24:30 74

原创 【死磕Java并发】—–深入分析volatile的实现原理

通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。上面比较绕口,通俗点讲就是说一个变量如果用volatile修饰了

2021-12-21 16:22:54 113

原创 JAVA网络编程基础,看完受益匪浅

IO模型IO请求的两个阶段(Linux)IO调用阶段:用户进程向内核发起系统调用 IO执行阶段:此时用户进行等待IO请求处理完成返回,此阶段分为两步 等待数据就绪,并写入内核缓冲区 数据从内核缓冲区 到 用户态缓冲区 内核态:运行操作系统程序,操作硬件 用户态:运行用户程序 Linux五种IO模型1.同步阻塞IO(BIO)内核只能同时处理一个请求,分两个阶段(即上述的 IO执行阶段):系统调用 数据从内核缓冲区读取到用户缓冲区这个两个操作..

2021-12-21 16:19:47 100

原创 学习Java必备的基础知识打卡12.21,要想学好必须扎实基本功#yyds盘点#

Runtime类在每一个JVM的进程中,都会存在一个运行时的操作类的对象,而这对象所属的类型就是Runtime类。打开这个类的文档,发现这个类之中并没有构造方法的定义,可是按照之前所学,每个类至少有一个构造方法,而这个类的构造方法实际上存在只是不被外部看见而已,因为构造方法私有化了,这是一个标准的单例设计模式,既然是单例设计模式则在这个类之中一定会存在一个static型方法,可以取得本类的Runtime实例化对象:public static Runtime getRuntime()。取得了Runti

2021-12-21 16:16:09 73

原创 Java后端高频知识点学习笔记1---Java基础

1、重载和重写的区别重载:同一类中多个同名方法根据不同的传参来执行不同的处理逻辑;方法名必须相同,参数类型不同、个数不同、顺序不同;返回值类型可以相同也可以不同(因为返回值类型不是方法签名的一部分)重写:子类对父类的方法的实现过程进行重新编写。方法名,参数列表和返回值类型都不能改变。抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。什么是方法签名?答:方法签名,区分不同方法的标示符;方法是由方法名、形参列表、返回值以及方法体构成;方法签名是由方法名与形参列表构成...

2021-12-20 22:40:25 127

原创 招聘中的热门技术技能:SQL、Java、Python 和 Linux

招聘机构Dice 发布了一份Q3 技术工作报告,分析了 2021 年 7 月至 9 月期间的 100 多万份科技工作岗位,并将其与2021 年 4 月至 7 月的职位发布数据以及历史趋势进行了比较。该报告包括按地点、雇主、职业和技能解析的科技职位发布量季度环比百分比变化的数据和分析。报告指出,Q3 招聘信息表明,雇主正在寻找了解软件开发和项目管理核心概念的技术人员,此外还需要具备SQL、Java、Python和Linux等技术技能。与前几个季度一样,SQL仍然是一项主导技能...

2021-12-20 22:38:41 2358

原创 Spring Boot 2.5.x能支持Java 17了 - codecentric

在 Spring Framework 中,AOP 代理是 JDK 动态代理或 CGLIB 代理。ASM是 Java 字节码操作的框架。ASM 被 CGLIB 使用,而 CGLIB 又被 Spring 用于 AOP。Spring 通过使用 CGLIB 和 ASM,正在生成与 Java 17 的运行时不兼容的代理类。Spring Boot 2.3 依赖于 Spring Framework 5.2,后者使用与 Java 17 不兼容的 CGLIB 和 ASM 版本。但是Spring 6和Spri...

2021-12-20 22:34:33 1565

原创 JDK18 功能集已冻结:JAVA 18 拥有 9 个新特性

Java 开发工具包 (JDK) 18 将于 2022 年 3 月 22 日发布。新版本的标准 Java 将有九个新特性,该特性集已于 12 月 9 日冻结,进入Rampdown 第一阶段。值得注意的是:JDK 17 是一个长期支持 (LTS) 版本,将获得 Oracle 至少八年的支持,但 JDK 18 将是一个短期功能版本,只支持六个月。可以在java.net上找到适用于 Linux、Windows 和 MacOS 的 JDK 18 的尝鲜版本。JDK 18 新功能一览:JEP 400:指.

2021-12-20 22:33:03 67

原创 Java 自定义注解在登录验证的应用竟有这些

java注解从 JDK 5开始,Java 增加了注解的新功能,注解其实是代码里面的特殊标记,这些标记可以在编译、类加载和运行时被读取,在不改变代码原有逻辑下,给源文件嵌入注解信息。再通过返回获取注解信息,根据不同的注解信息处理不同逻辑。其中 Java 有以下几个元Annotation:@Retention@Retention修饰 Annotation 可以保留多长时间,只包含一个 RetentionPolicy 一个成员变量。RetentionPolicy.CLASS 默认值,编译器把 An

2021-12-20 22:11:46 100

原创 曲折——目标腾讯,字节,拼多多;最后居然五面进了阿里

笔者是从10月份开始投简历的,投了很多公司如阿里、腾讯、字节、360、拼多多等。最开始也是印象最深刻的面试是阿里,从10月18日提交简历,到11月22日拿到阿里意向书,面试过程前后经历了一个多月的时间,也感受到了阿里工作的忙碌。在这里为大家分享一下阿里五面的面经供大家参考。一面(电话)说说对JVM的理解 treemap和hashmap有什么区别? Java多线程的的5大状态图流转 mysql主键和唯一索引的区别 说说最近的项目 如何实现session共享,用redis如何实现 缓

2021-12-20 21:34:31 69

原创 字节跳动2022Java面经,你离高薪就只差一片面试题了

前言经历了惨痛的春招与秋招之后,也积攒了一些面经,希望能对大家有所帮助。由于字数限制需要答案的可以添加vx小助手:ON7luck 详细了解~什什么是幂等?什什么情况下需要考虑幂等?你怎么解决幂等的问题?Java多个线程同时读写,读线程的数量量远远⼤大于写线程,你认为应该如何解决并发的问题?你会选择加什什么样的锁?JAVA的AQS是否了了解,它是⼲干嘛的? 除了了synchronized关键字之外,你是怎么来保障线程安全的? 什什么时候需要加volatile关键字?它能保证线程安全吗?

2021-12-20 21:27:13 387

原创 百度开源中国(Java)面经,不看就太可惜啦

一、自我介绍面试嘛,万年不变还是自我介绍,就说说你是干嘛的(专业是啥),为什么会选择该公司(说一说自己为何向往Java开发),再谈谈自己的优点(兴趣爱好)。如果人家叫停了,就别一股脑接着讲了,停下来就可以。二、关于技术问题一般技术问题都是“一面”,一般大公司会有“一面”、“二面”……甚至“三面”(字节、华为、阿里)。好~回归正题:技术面说白了就是看你简历上如何写了,若你简历上写了:熟悉计算机网络、熟悉数据结构等字眼,技术面的时候面试官就会问你这方面的问题,不过不用担心的是百度·开源中国的前后

2021-12-20 21:23:46 2017 1

原创 通过Docker部署Java项目的日志输出到宿主机指定目录

用上篇博客部署Java程序是ok的,不过Java日志打印在容器里,不能满足原来ELK的日志搜集。方法有2种:1、在Docker容器内部加入日志收集工具,Filebeat或Logstash。2、将打Docker内的日志打印到宿主机的目录。本文用的第二种,下面再慢慢说思路,开始叻先看项目不迷糊1、首先 Dockerfile 里的ENTRYPOINT配置Java日志输出无果# 基础镜像使用JavaFROM java:8LABEL name=shop-client-prod..

2021-12-17 21:39:39 9557

原创 Java安全——JVM类加载器

Java类加载机制在Java安全知识体系中有着非常重要的地位,早在之前分析Shiro反序列化漏洞利用,以及学习蚁剑Java马,都和Java ClassLoader打过交道。笔者打算从把ClassLoader的原理、使用场景、自定义方式等多个方面剖析类加载器在Java安全中设计到的知识。0x01 ClassLoader 简介Java语言需要把代码编译成class文件,才能用JVM加载执行,那么ClassLoader就是负责将class文件加载到内存,生成对应的类。0x1 ClassLoader类加

2021-12-17 21:36:15 86

空空如也

空空如也

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

TA关注的人

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