自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis核心原理到底有多重要?

什么是 JDBCJDBC(JavaDataBase Connectivity)就是 Java 数据库连接, 说的直白点就是 使用 Java 语言操作数据库本来我们是通过控制台或客户端操作的数据库, JDBC 是用 Java 语言来发送 SQL 语句JDBC 原理最初 SUN 公司希望提供一套 能够适用所有数据库的 API, 但是在实际操作中却发现这是项基本不可能完成的任务因为各个厂商所提供的 数据库差异实在太大, 所以 SUN 公司与数据库厂商讨论出的就是:由 SUN 公司提供出一套访问数据库的规

2021-11-18 16:39:19 243

原创 如何在面试中介绍自己的项目经验?

在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。1. 第一印象就不好了,至少会感觉该候选人表述能力不强。2. 一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候选人所介绍的项目背景来问,候选人如果没说好,那么就没法很好地引导后继问题了,就相当于把提

2021-11-15 15:43:14 258

原创 Github一夜登顶的SpringBoot+vue项目太香了 马士兵老师

前后端分离众所周知现在开发都是前后端分离。其中用到的技术最火的无疑是后端选用Spring Boot,前端选用Vue技术,的SpringBoot+vue组合了!为什么前后端分离要用SpringBoot+vue?可能有人就会说了,不用SpringBoot+vue不行吗?答案是:当然也行!单独采用Spring Boot 开发项目常规的方式其实也很简单,无非还是采用原来Spring Mvc那一套,但很难完全的前后端分离,前端的同学要加页面需要找后端的同学给加。但是前端使用vue,那么我们可以只建一个页面,构建

2021-11-09 17:21:35 1017

原创 太肝了、最近5年183个Java面试问题列表及回答(值得收藏)

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的 GC 就会开始工作.

2021-11-08 19:20:20 965

原创 九种高性能可用高并发的技术架构总结,你了解几种?

分层架构是逻辑上的,在物理部署上,三层架构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,是网站拥有更多的计算资源以应对越来越多的用户访问。1、分层分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和维度组成一个完整的系统。在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务

2021-11-04 21:10:15 1230

原创 涨薪必刷秘笈:Java异步编程蓝光版笔记(含Go语言)

通常Java开发人员喜欢使用同步代码编写程序,因为这种请求(request) /响应(response) 的方式比较简单,并且比较符合编程人员的思维习惯;这种做法很好,直到系统出现性能瓶颈。在使用同步编程方式时,由于每个线程同时只能发起一个请求 并同步等待返回, 所以为了提高系统性能,此时我们就需要引入更多的线程来实现并行化处理。但是多线程下对共享资源进行访问时,不可避免会引入资源争用和并发问题;另外,操作系统层面对线程的个数是有限制的,不可能通过无限增加线程数来提供系统性能;而且,使用同步阻塞的编程方式还

2021-10-31 21:09:49 97

原创 全面了解http与https的本质区别(技术人员必备)

http协议是基于tcp协议,默认是80端口。它的特点是什么?它是基于请求和响应的,大家抓个包能看到http协议有一个请求报文有一个响应报文,还有它是一个无状态的协议,还有一个无连接的协议。无连接是指:http协议每次只能处理一个请求,限制我们每次连接只处理一个请求,就是服务器处理完客户的一个请求,并且收到客户的应答之后就会断开连接,即一个连接处理一个请求。后续再有其他请求需要重新发起连接。它采用这种方式啊,其实是为了节省时间,但是一般web页面都比较复杂,可能需要在一个连接里面要处理多个请求,这

2021-10-30 20:35:48 852

原创 如何自学编程?这些问题你搞清楚啦吗?

最近有很多编程小白咨询我一些关于学习编程的问题,因为我也是自学编程,一路也是磕磕绊绊的,知道这里面的辛酸苦辣,对于他们的问题,我之前也迷茫过,姑且今天写写这方面的话题,希望对那些编程小白有所帮助!编程小白们注意啦!本篇文章,是专门为你们写的!觉得不错记得文末点赞哦,如果你能把你身边的朋友也忽悠过来关注我,好吧,承认你:是个人才????**学编程以后能干啥啊????你还别说,我当初选择了计算机科学与技术这个专业之后,很长一段时间都是蒙蔽的,这啥玩意儿,计算机科学与技术,反正听着不赖,就是不知道干啥的?

2021-10-28 16:54:25 341

原创 秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

什么是 Spring BootJava (面向对象编程语言)经过30多年的发展,产生了非常多的优秀框架。Spring (为解决企业应用程序开发的复杂性而创建的框架)曾是最受欢迎的Java框架之一, 但随着Node、Ruby、Groovy、PHP等脚本语言的蓬勃发展,使用Spring开发应用就显得繁琐了,因为它使用了大量的XML配置文件,配置繁琐,整合不易,开发和部署效率低下。这时急切需要一-种新的能解决这些问题的快速开发框架,于是Pivotal Software公司在2013开始了Spring Boot的

2021-10-27 14:27:20 122

原创 阿里内部流传的Java程序性能优化手抄本,让你的Java程序更快更稳定

Java是目前应用最为广泛的软件开发平台之一,随着Java以及Java社区的不断壮大,Java早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个平台,JVM虚拟机扮演着举重轻重的作用,除了Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、JRuby等都是Java平台的一个部分,他们依赖JVM虚拟机,同时Java平台也因为它们变得更加丰富多彩。作为一种文化,Java几乎成为了“开源”的代名词,在Java程序中,有着数不清的

2021-10-26 21:18:00 143

原创 Java初学者:数组,声明以及初始化

今天我们说一下java里面的数组,数组在编程语言里的意思,相当于离散数学里面的集合,其意义几乎完全一样,只有一点区别,离散里有无穷集合,比 如,实数集,但是在java里是不存在无穷集合的。在java里,数组就是一些数据的集合。作为我们这些菜鸟,大多数情况下见到的数组,其中的数据都属于 同一类型。少数情况下不属于同一类型,那很有可能发生了多态现象,而且在访问数组元素的方法时,很可能产生了动态绑定,这些我们以后再说。好了,让我们目前先认为数组里的元素都属于同一类型。那么,怎样声明以及初始化一个数组呢?声明

2021-10-21 19:23:16 319

原创 Java后端最佳的学习路线

前言自学/学习路线这样的一期我想写很久了,因为一直想写的全一点硬核一点所以拖到了现在,我相信这一期对不管是还在学校还是已经工作的同学都有所帮助,不管是前端还是后端我都墙裂建议大家看完,因为这样会让你对你所工作的互联网领域相关技术栈有个初步的了解。你们也知道敖丙我是个创作鬼才,常规的切入点也不是我的风格,我毕业后主要接触的都是电商领域,所以这一期我把目前所了解的技术栈加上之前电商系统的经验臆想了一个完整的电商系统,大家会看到很多熟悉的技术栈我相信也会看到自己未接触过的技术栈,我也会对每个技术栈的主要技术点

2021-10-20 21:19:15 525

原创 2021-10-16

javac和java命令行中的-classpath选项这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点。javacclasspath,设定要搜索类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。-sourcepath, 设定要搜索编译所需java 文件的路径,可以是目录,jar文件,zip文件(里面都是java文件)。所以一个完整的javac命令行应该是这样的,假设abc.j

2021-10-16 17:06:26 72

原创 Java零基础小白的第一波JA笔记

常识:1.最常用的整体编程语言JavaScript,是唯一一种通用浏览器脚本语言。2.文件名必须和类名保持一致3.JAVA中的编译性:.class-编译器-.java解释性:.java-操作系统平台4.PSVM SOUT5.float num=50.1F //有限,离散,舍入误差,大约,接近但不等于6.long num=50L7.布尔值:是非8.1byte=8bit9.整数拓展:二进制0b,八进制0,十六进制0x10.最好不用浮点数进行比较11.所有的字符本质还是数字,所有的字符可以

2021-10-15 21:27:42 136

原创 从Java零基础小白到拿到大厂实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到我在这半年里做对了哪些事情。前言研究生时期的方向选择对于即将读研的同学来说,一般有两件事很重要,一件事是选择导师,一件事是选择方向。我就读于华中科技大学,主修软件工程专业,我在刚读研的时候最头疼的也是这两件事情。首先说明一下,我读的是专硕,所以实验室一般不搞科研,有部分导师会带项目,由于我不打算在实验室做项目

2021-10-14 20:36:13 293

原创 Java零基础知识总结

前言本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结。Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层实现原理。纸上得来终觉浅,绝知此事要躬行。笔者之前对每部分的内容对做了比较深入的学习以及代码实现,基本上比较全面地讲述了每一个Java基础知识点,当然可能有些遗漏和错误,欢迎读者指正。Java基础知识点总结每部分内容会重点写一些常见知识点,方便复习和记忆,但并不是全部内容。面向对象三大特性承:一般

2021-10-13 21:09:31 94

原创 JAVA小白必学的代码编程技巧

程序员往往渴望加入的是一支“30%的时间在写代码,而70%的时间在喝着咖啡讨论着如何将产品做好”的团队。软件工作应该成为一项技术和艺术融合的高智力活动,而项目经理应该是一个高度理解质量、范围和进度客观规律的明白人,“高效工作,快乐生活”才应该是程序员的座右铭。可现实情况却是,团队在一边超负荷的做着需求,一边改着没完没了的Bug。过点前夕,项目经理熬着通红通红的眼睛盯着我们整晚整晚的加班,质量专员一遍一遍的催促质量数据还不够,软件工作已经无可挽回的沦落成了体力劳动,别说快乐生活,生活都没了。好吧,以上

2021-10-11 15:29:01 227

原创 JAVA的教程一大堆,到底该如何才能学好JAVA?

零基础小白如何学习java?怎么做到从入门到精通?学习的教程是什么?做好以下这几点,掌握JAVA更轻松Java必备基础知识1、你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。2、你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,

2021-10-11 14:04:06 149

原创 谈谈零基础的小白怎么学习Java!!

自身零基础,那么我们应该先学好Java,首先我们来了解下Java的特性:Java语言是简单的Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑 的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是一个面向对象的Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接

2021-10-11 13:43:39 119

原创 零基础的Java小白如何准备初级开发的面试

对于各位Java程序员来说,只要能有实践的机会,哪怕工资再低,公司情况再一般,只要自己上心努力,就可能在短时间内快速提升,甚至在工作2年后进大厂都有希望,因为项目里真实的开发实践环境是平时学习不能模拟的。所以很多想从事Java开发的同学其实是卡在了第一步:无法积累足以找到工作的项目经验,甚至不知道该如何积累,从而导致没面试机会,或者面试总通不过。这样很多有编程天赋有而且聪明上进的程序员可能就与感兴趣的职业失之交臂了。作为面试官,我知道Java初级开发的最低面试标准,作为Java培训讲师,我帮助过不少零基础

2021-10-09 16:22:37 496

原创 秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

什么是 Spring BootJava (面向对象编程语言)经过30多年的发展,产生了非常多的优秀框架。Spring (为解决企业应用程序开发的复杂性而创建的框架)曾是最受欢迎的Java框架之一, 但随着Node、Ruby、Groovy、PHP等脚本语言的蓬勃发展,使用Spring开发应用就显得繁琐了,因为它使用了大量的XML配置文件,配置繁琐,整合不易,开发和部署效率低下。这时急切需要一-种新的能解决这些问题的快速开发框架,于是Pivotal Software公司在2013开始了Spring Boot的

2021-10-09 14:08:51 82

原创 求你了,别再说Java对象都是在堆内存上分配空间的了!

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内存和栈内存(如无特指,本文提到的栈均指的是虚拟机栈),关于堆和栈的区别,很多开发者也是如数家珍,有很多书籍,或者网上的文章大概都是这样介绍的:1、堆是线程共享的内存区域,栈是线程独享的内存区域。2、堆中主要存放对象

2021-08-27 22:04:21 148 1

原创 当Java枚举遇到位掩码,原来还能这么玩?

相信大家都用过 Fastjson,阿里的一个开源 JSON 库,在阿里系的开源项目里应用的非常广泛。虽然有时候也被戏称“沉的快”,但 Fastjson 从功能丰富度、易用性、源码设计角度来看,都是一款十分优秀的工具库。在使用 Fastjson 时,经常会配置一些枚举参数,比如日期格式、格式化输出、NULL值格式啊等等,就像下面这样配置:String jsonStr = JSON.toJSONString(obj, SerializerFeature.Wri

2021-08-27 21:50:19 107

原创 面试官:并发下的 HashMap 为什么会引起死循环?

今天研读Java并发容器和框架时,看到为什么要使用ConcurrentHashMap时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。纠起原因看了其他的博客,都比较抽象,所以这里以图形的方式展示一下,希望支持!之前参加阿里的性能挑战大赛,需要使用缓存,我就采用了HashMap对数据进行缓存,可运行了一段时间电脑爆卡,我查了一下,可能是死循环问题,就用 jstack du

2021-08-27 20:57:47 131

原创 作为Java开发,知道HashMap底层存储原理总不会害你

概念HasnMap是基于map接口实现,元素以键值对的方式存储,并且键和值都可以使用null,因为 key不允许重复,因此只能有一个键为nullHaasnMap是 无序不重复的,而且HashMap是线程不安全 的JDK7HashMap的数据结构为:数组+链表JDK8HashMap的数据结构为:数组 + 链表 + 红黑树存储的优点数组的特点:查询效率高,插入和删除效率低链表的特点:查询效率 低,插入和删除效率高在HasnMap底层使用数组加 (链表或红黑树) 的结构完美的解决了数组和链表

2021-08-27 19:18:58 158

原创 我摊牌了,我不装了,这些 Java 反射用法总结都告诉你们

Java反射的常见用法反射的常见用法有三类,第一类是“查看”,比如输入某个类的属性方法等信息,第二类是“装载“,比如装载指定的类到内存里,第三类是“调用”,比如通过传入参数,调用指定的方法。定义Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。用途在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,

2021-08-27 17:10:55 205

原创 Redis 数据类型你知道的可不止这些!

今天咱们来聊聊redis 的数据类型。我们以问答的方式来开始今天的知识。角色介绍:小越 => 学生梁 => 老师小越正在上大二,是个勤奋努力的小伙,最近正在学习redis相关的知识,官网、博客文章全部搜罗一遍,感觉自己信心满满,于是便去找了梁老师讨教一番。小越兴致勃勃的来到老师办公室。小越:梁老师,我最近学习了redis,redis 真的太强大了,数据类型丰富,能够适应我很多应用场景。梁:小孩子不要太骄傲,我来考考你吧。梁:咱们就聊聊redis 的数据类型吧,你说说你都知道哪些

2021-08-27 15:29:56 175

原创 为啥HashMap的默认容量是16?

集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生。在日常开发中,我们经常会像如下方式以下创建一个HashMap:Map<String, String> map = new HashMap<String, String>();但是,大家有没有想过,上面的代码中,我们并没有给HashMap指定容量,那么,这时候一个新创建的HashMap的默认容量是多少呢?为什么呢?本文就来分析下这个问题。什么是容量

2021-08-27 13:46:13 188

原创 Java面试: ThreadLocal 原理和使用场景

????前言今天博主将为大家分享Java(面试必备):面试中的 ThreadLocal 原理和使用场景,不喜勿喷,如有异议欢迎讨论!相信大家在面试中经常被问过 ThreadLocal 的原理和用法,虽然一直知道这个东西的存在但是一直没有好好的研究一下原理,没有自己的知识体系。今天安利一波有待提高????ThreadLocal 是什么ThreadLocal 是 JDK java.lang 包中的一个用来实现相同线程数据共享不同的线程数据隔离的一个工具。 我们来看下 JDK 源码中是如何解释的:翻译后

2021-08-24 14:43:04 223

原创 Java 高级特性之泛型

何为泛型正如字面意思,泛化的类型,指在编码时无法确定某一个具体的类型,需要先使用一个占位符(建议大写,全英),当运行时传入具体的类型来替换这一个泛型标记为什么需要泛型伪需求假设我们需要一个列表去存 String 类型的数据,那这个结构的设计为class MyListForString{ String get(); void set(Sring int)}然后,发现需要里一个列表去存取 Integer 类型的数据,就需要重新定义一个结构class MyListForInteger{

2021-08-23 15:32:52 264 2

原创 面试常问:如何设置Java线程池大小?

面试常问:如何设置Java线程池大小?✨什么是线程池?????线程池种类介绍????线程池种类介绍——Executors????newFixedThreadPool()线程池特点:缺点使用场景????newCachedThreadPool()线程池特点:缺点使用场景????newSingleThreadExecutor()线程池特点缺点使用场景????newScheduledThreadPool()线程池特点使用场景????线程池种类介绍——自定义线程池:ThreadPoolExecutorThreadPo

2021-08-20 16:51:09 311 1

原创 JVM 常见垃圾回收算法简介

JVM 常见垃圾回收算法简介1 基本算法1.1 标记-清除算法(Mark-Sweep)1.1.1 原理1.1.2 优缺点1.2 复制算法(Copying)1.2.1 原理1.2.2 优缺点1.2.3 JVM改进的实现1.3 标记-整理算法(Mark-Compact)1.3.1 原理1.3.2 优缺点2 综合算法2.1 分代收集算法(Generational Collecting)2.2 分区收集算法(Regin)详细介绍了Java的JVM中常见三种垃圾收集算法:标记清除算法、复制算法、标记整理算法、分代

2021-08-19 22:08:18 360

原创 JVM 这些知识你知道吗?

关于JVM相关的知识,这边我上网找了一些资料。一、JVM 内存区域相关1.JVM 的内存模型以及分区情况和作用如下图所示: 黄色部分为线程共有,蓝色部分为线程私有。方法区用于存储虚拟机加载的类信息,常量,静态变量等数据。堆存放对象实例,所有的对象和数组都要在堆上分配。是JVM所管理的内存中最大的一块区域。栈Java方法执行的内存模型:存储局部变量表,操作数栈,动态链接,方法出口等信息。生命周期与线程相同。本地方法栈作用与虚拟机栈类似,不同点本地方法为native方法执行服务,虚拟.

2021-08-19 20:49:01 96 2

原创 HashMap的设计与优化

HashMap的设计与优化????前言大家好,初来乍到,还希望各路大佬多指点指点!???? HashMap的设计原理1\. HashMap设计思路:Map是一种以键值对存储数据的容器,而 HashMap 则是借助了键值 Key 的 hashcode 值来组织存储,使得可以非常快速和高效地地根据键值 key 进行数据的存取。对于键值对,HashMap 内部会将其封装成一个对应的 Entry 对象,即 Entry 对象是键值对的组织形式;对于每个对象而言,JVM 都会为其生成一个 hashc

2021-08-18 17:30:45 403 48

原创 Java 书单:自用学习书单,稍微整理一下分享给大家!

其实这些书大家去网上搜的话,也是能搜到的;只是我这里做了一个整理,方便自己,也方便他人,不用去各个地方找来找去;虽然不是很全,但是核心的都已经包含了,后续也会慢慢往上加,加油吧。这里写目录标题健康Java 基础Java 进阶Java 优化计算机设计模式Spring 全家桶Maven 依赖管理MySQL 数据库Redis 数据库RabbitMQ 消息队列架构声明健康《程序员健康指南》- 链接: https://pan.baidu.com/s/1dvFvrRPvRuR4Do-zQeBjiw 提取码.

2021-08-17 21:44:01 586 1

原创 Java并发编程线程状态转换

大家好,初来乍到,还希望各路大佬多指点指点!Java并发编程线程状态转换,内容通俗易懂,请放心食用。线程状态先来个开场四连问Java线程状态有几个?Java线程状态是如何转换?Java线程状态转换什么情况会进入锁的等待队列?Java线程状态转换什么情况会进入锁的同步队列?一提到Java线程状态,不少读者立马想到线程状态转换图,但细想,印象又不深刻,只记得有那么几个状态。再要你说出Java线程状态是如何转换的,脑子里可能就如下图一样,已经是一团浆糊了。别慌,阿星为了帮读

2021-08-17 19:59:48 181 27

空空如也

空空如也

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

TA关注的人

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