编程语言
文章平均质量分 85
Java大蜗牛
公众号「Java大蜗牛」专注Java技术/面试技巧!求关注!
展开
-
好家伙1403页,又一份牛逼笔记面世了
如题原创 2022-03-21 14:11:47 · 273 阅读 · 0 评论 -
别学了,这 5 种即将消亡的编程语言
每个编码的人都有自己喜欢的语言。拥有一种首选语言有很多原因,但是,我们的语言有时会变得很单调,它不再由制造它的公司维护,或者人们出于某种无法解释的原因放弃使用它。但是,也有的编程语言例外,比如C语言,它就经受住了时间的考验,在许多情况下仍然是最流行的编程语言。编程语言都有自己的生命周期,对某些语言来说,属于它们的时代似乎已经结束了,今天,我们就来盘下一下目前前景最黯淡的5种语言:1. Visual Basic .NETMicrosoft Visual Basic.NET 是 Micr原创 2022-01-17 20:45:00 · 716 阅读 · 0 评论 -
拿去吧,基于SpringBoot 的CMS系统(附源码)
推荐关注|Java大蜗牛编辑:蜗牛|来源:铭飞项目介绍大家好,我是蜗牛。今天推荐的是基于SpringBoot 2架构,前端基于vue、element ui。每月定期更新版本,为开发者提供上百套免费模板,同时提供适用的插件(文章、商城、微信、论坛、会员、评论、支付、积分、工作流、任务调度等...),一套简单好用的开源系统、一整套优质的开源生态内容体系。铭飞的使命就是降低开发成本提高开发效率,提供全方位的企业级开发解决方案。系统特点 免费完整开源:基于MIT协议,源代码完全开源,无商业限制原创 2022-01-13 14:50:46 · 491 阅读 · 0 评论 -
手把手,从零开始搭建个人博客网站(附源码)
从零开始搭建个人博客网站(附源码)原创 2022-01-12 20:52:37 · 4783 阅读 · 5 评论 -
【建议收藏】由浅入深,说说HashMap的底层原理,你学废了吗?
HashMap定义说的专业一点,HashMap是常用的用于存储key-value键值对数据的一个集合,底层是基于对Map的接口实现。每一个键值对又叫Entry,这些Entry分散的存储在一个由数组和链表组成的集合中。当然在Java8中,Entry变成了Node。说的通俗一点,就像你去住酒店,你下单提供了你的手机号,然后到酒店了给你一个房卡,你知道了你的房号之后再根据这个房号去找对应的房间一样。房号就是key,房间里就是value。你通过手机号下单到酒店给你房号可以理解为对key哈希的过...原创 2021-07-06 22:26:07 · 211 阅读 · 3 评论 -
Springboot之线程池ThreadPoolTaskExecutor以及@Async异步注解
前言最近项目当中有需求,要进行异步的处理,需要使用到线程池,很久没有使用到线程池了,一来是做JAVAweb开发基本上很少用到异步处理,二来是发现有的老项目里面,线程和线程池的使用比较混乱,有好几个线程池,有的线程池是通过spring管理的,有的是自己创建的,然后有的地方是直接创建的线程。所以这里记录下自己在项目当中如何优雅的使用线程池!避免项目当中到处都是线程池!!!【白嫖资料】SpringBoot整合ThreadPoolTaskExecutor线程池ThreadPoolExecutor:这个是JA.原创 2021-07-05 17:24:29 · 670 阅读 · 4 评论 -
不能用常理的角度!来理解这篇SpringBoot自动装配原理,真独特啊~
前言看了标题后,你应该能猜到我不是要从源码角度分析 SpringBoot 自动装配原理。再分析源码那也太没劲了,写文章很麻烦的,写一个很多人写过的文章更麻烦(但我依旧建议先了解原理,再找机会应用到项目中)【白嫖资料】我想记录的其实是:我在项目中无意间使用了SpringBoot的自动装配,做了一个 SpringBoot 自动装配的实战案例。先说一下这个“无意间”的事件发生背景吧!作为一个后端程序员,对于接口入参的字段校验那是家常便饭,所以对校验非空的注解常用 @NotNull,字段为空会抛出 Meth.原创 2021-07-05 16:58:55 · 157 阅读 · 0 评论 -
用架构师的角度来分析:Redis客户端如何实现高可用读写分离?
背景(1) redis单机的读写性能轻松上大几万,不过线上环境不会只部署光秃秃的一个节点,还是会配合 sentinel 再部署一个 slave作为高可用节点的;但是standby的slave节点是不对外提供服务端的,一定程度上造成了浪费资源(2) 当业务不断发展,原来单节点缓存的数据(如,商品信息缓存、配置信息等)的查询qps不断升高(写qps增长不多),突破十几万、几十万的的时候,此时一个节点就扛不住了,我们就需要增加几个redis slaves节点来分担这些查询的压力 也就是读写分离但..原创 2021-07-03 21:48:15 · 154 阅读 · 3 评论 -
新来的同事问我,什么是SpringAOP面向切面编程?我一波操作后他说请我吃饭!
SpringAOP面向切面编程Spring中三大核心思想之一AOP(面向切面编程):在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。通过预编译方式..原创 2021-06-30 14:03:06 · 203 阅读 · 14 评论 -
面试官看了都佩服我!深入了解Spring IoC,这也太详细了吧!
1. 什么是 Spring Framework ?官方文档:【资料获取】Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languages o..原创 2021-06-30 13:56:33 · 186 阅读 · 5 评论 -
定个小目标!挑战100天进大厂之每日10道Java面试题!(3)持续更新中...
定个小目标!挑战100天进大厂之每日10道Java面试题!(3)持续更新中…养成阅读好习惯,从关注开始!更多Java相关资料可以关注公众号【Java大蜗牛】发送:621.HashMap 和 Hashtable 有什么区别?hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。hashMap允许空键值,而hashTable不允.原创 2021-06-24 19:11:51 · 141 阅读 · 1 评论 -
定个小目标!挑战100天进大厂之每日10道Java面试题!(2)持续更新中...
定个小目标!挑战100天进大厂之每日10道Java面试题!(2)持续更新中…养成阅读好习惯,从关注开始!更多Java相关资料可以关注公众号【Java大蜗牛】发送:611.抽象类必须要有抽象方法吗? 不需要,抽象类不一定非要有抽象方法。示例代码:abstract class Cat { public static void sayHi() { System.out.println("hi~"); }}上面代码,抽象类并没有抽象方法但完全可以正常运行。12.原创 2021-06-23 15:07:26 · 165 阅读 · 1 评论 -
定个小目标!挑战100天进大厂之每日10道Java面试题!(1)持续更新中...
定个小目标!挑战100天进大厂之每日10道Java面试题!(1)持续更新中…养成阅读好习惯,从关注开始!更多Java相关资料可以关注公众号【Java大蜗牛】发送:61.JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编.原创 2021-06-22 22:53:13 · 209 阅读 · 0 评论 -
听说字节面试官比较友好,于是我去面试了...
一面、自我介绍实习时间挺长?数组和 链表 的区别?ArrayList的扩容是怎么实现?介绍一下hashmap,介绍一下put操作做了哪些步骤?(问了细节)hashmap判定重复是==还是equalshashmap1.7和1.8?hashMap是线程安全吗?介绍一下concurrentHashMap?如何保证线程安全的同时保证吞吐量?synchronized在jdk1.8做了哪些优化?synchronized为什么要设计成可重入?volatile的原理?解决什么问题?介绍一下JMM.原创 2021-06-04 22:20:25 · 186 阅读 · 2 评论 -
看完这篇还不懂 MySQL 主从复制?那就回家葛优躺吧!
前言我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机。这样我们保存在 MySQL 数据库的数据就会丢失,那么该怎么解决呢?其实在 MySQL 本身就自带有一个主从复制的功能,可以帮助我们实现负载均衡和读写分离。对于主服务器(Master)来说,主要负责写,从服务器(Slave)主要负责读,这样的话,就会大大减轻压力,从而提高效率。接下来,一起来看看它都有哪些核心知识点:简介随着业务的增长,一台数据服务器已经满足不了需求了原创 2021-05-28 16:10:43 · 1709 阅读 · 6 评论 -
肝了这篇入门Spring框架(注解)超详细
养成阅读好习惯,从关注开始!1. 常用注解xml配置spring<bean id="accountService" class="cn.bruce.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" | ref=""></property></bean>...原创 2021-05-20 15:28:21 · 126 阅读 · 0 评论 -
SQL查询语句总是先执行SELECT?你们都错了。。。
很多 SQL 查询都是以 SELECT 开始的。不过,最近我跟别人解释什么是窗口函数,我在网上搜索”是否可以对窗口函数返回的结果进行过滤“这个问题,得出的结论是”窗口函数必须在 WHERE 和 GROUP BY 之后,所以不能”。于是我又想到了另一个问题:SQL 查询的执行顺序是怎样的?好像这个问题应该很好回答,毕竟自己已经写了上万个 SQL 查询了,有一些还很复杂。但事实是,我仍然很难确切地说出它的顺序是怎样的。SQL 查询的执行顺序于是我研究了一下,发现顺序大概是这样的。SELECT 并不是转载 2021-01-19 21:23:31 · 126 阅读 · 0 评论 -
Spring 和 SpringBoot 之间到底有啥区别?
概述对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累、我慢慢理解了这两个框架到底有什么区别,相信对于用了 SpringBoot很久的同学来说,还不是很理解 SpringBoot到底和 Spring有什么区别,看完文章中的比较,或许你有了不同的答案和看法!什么是Spring作为 Java开发人员,大家都 Spring都不陌生,简而言之, Spring框架为开发 Java应用程序提供了全面的基础架构支持。.原创 2021-01-19 15:19:20 · 264 阅读 · 0 评论 -
头秃了,Spring Boot 自动配置源码解析了解一波
大家好,我是Java大蜗牛,一个渴望在互联网行业做到很牛的蜗牛。可柔可刚,点赞则柔,白嫖则刚!死鬼~~~看完记得给我来个三连哦!目录前言 源码版本 @SpringBootApplication干了什么? @EnableAutoConfiguration干了什么? 总结前言为什么Spring Boot这么火?因为便捷,开箱即用,但是你思考过为什么会这么便捷吗?传统的SSM架构配置文件至少要写半天,而使用Spring Boot之后只需要引入一个starter之后就能直接使.原创 2020-11-24 13:55:29 · 144 阅读 · 0 评论 -
目前最系统的程序员未来职业规划路线,请收藏
1. 什么是程序员上面图片真实的反应了一些程序员的生活常态,那么首先来说一下什么是:程序员吧,所谓程序员就是从事程序开发,程序维护的工作者。说到底就是一个普通的打工仔,一个"搬砖工",程序员也叫做码农。2. 关于职业规划很程序员每天都在写代码,每天都很忙,而当面试官问他:“你的职业规划是什么?”程序员答:“没有”。那如果让你选择一个角色你会选择什么?比如...原创 2020-02-10 22:09:58 · 5772 阅读 · 1 评论 -
《分享几道高频 Redis 高频面试题,面试不用愁》
1、说说 Redis 都有哪些应用场景?缓存:这应该是 Redis 最主要的功能了,也是大型网站必备机制,合理地使用缓存不仅可以加 快数据的访问速度,而且能够有效地降低后端数据源的压力。 共享Session:对于一些依赖 session 功能的服务来说,如果需要从单机变成集群的话,可以选择 redis 来统一管理 session。 消息队列系统:消息队列系统可以说是一个大型网站的...原创 2019-12-27 22:10:19 · 139 阅读 · 0 评论 -
JVM内存区域与垃圾回收
1、JAVA内存区域与内存溢出1.1、概述Java中JVM提供了内存管理机制,Java虚拟机在执行Java程序的过程中会把内分分为不同的数据区,如图:1.2、程序计数器程序计数器是当前线程所执行的字节码的行号指示器,作用就是根据计数器的值获取下一条要执行的字节码指令。当执行的是java方法,则记录的是正在执行的虚拟机字节码指令的地址,如果是Native方法,则这个计数器的...原创 2019-12-24 22:26:40 · 150 阅读 · 0 评论 -
线程安全之Synchronized关键字
1 多线程下为什么会存在线程安全问题线程的合理使用能够提升程序的处理性能,一是能够利用多核 CPU 来实现线程的并行执行,二是线程的异步化执行能够提高系统的吞吐量。虽然线程有这些优点,但同时也带来了很多问题。比如说:1.1 共享变量带来的安全性问题先来看个图:一个变量 i ,如果线程 A 或者线程 B 单独访问并且修改变量 i 的值没有任何问题,那如果并行的...原创 2019-12-20 21:49:28 · 193 阅读 · 0 评论 -
《初步了解JVM》第1章
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制、编译过程和如何对Java程序进行调优相信都会有一个很好的认知。废话不多说,直接带大家来初步认识一下JVM。什么是JVM?JVM(Java Virtual Machine)是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据、内存和寄存器。看到这里,可能不懂JVM...原创 2019-12-19 15:48:40 · 121 阅读 · 0 评论 -
MySQL高频面试题的灵魂拷问
唯一索引比普通索引快吗, 为什么?唯一索引不一定比普通索引快, 还可能慢。查询时, 在未使用limit 1的情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回. 如此看来唯一索引少了一次匹配, 但实际上这个消耗微乎其微. 更新时, 这个情况就比较复杂了. 普通索引将记录放到change buffer中语句就执行完毕了. 而对唯一索引而言, ...原创 2019-12-18 22:08:44 · 97 阅读 · 0 评论 -
看看MQ?必须告诉你为什么要使用MQ消息中间件(图解版)
作者:Ccww链接: https://juejin.im/post/5dd3b5e0e51d453fd16b1994场景一:系统解耦假设你有个系统A,这个系统A会产出一个核心数据,现在下游有系统B和系统C需要使用这个数据。首先想到最简单,系统A就是直接调用系统B和系统C的接口发送数据给他们就好了但是现在要是来了系统D、系统E、系统F、系统G,等等,十来个...原创 2019-11-20 21:36:53 · 285 阅读 · 0 评论 -
《关于MySQL的一些骚操作》
概要回顾以前写的项目,发现在规范的时候,还是可以做点骚操作的。假使以后还有新的项目用到了MySQL,那么肯定是要实践一番的。为了准备,创建测试数据表(建表语句中默认使用utf8mb4以及utf8mb4_unicode_ci,感兴趣的读者可以自行搜索这两个配置):CREATE TABLE `student` ( `id` int(11) unsigned NOT NUL...原创 2019-11-18 20:36:39 · 158 阅读 · 0 评论 -
Springboot:高并发下耗时操作的实现
高并发下的耗时操作高并发下,就是请求在一个时间点比较多时,很多写的请求打过来时,你的服务器承受很大的压力,当你的一个请求处理时间长时,这些请求将会把你的服务器线程耗尽,即你的主线程池里的线程将不会再有空闲状态的,再打过来的请求,将会是502了。加q群:478052716 免费领取(Java架构资料,视频资料,BATJ面试资料)请求流程图http1 http2 ht...原创 2019-11-17 20:37:26 · 2374 阅读 · 0 评论 -
Zookeeper有哪些应用场景?面试官希望听到这“4点”
zookeeper 都有哪些使用场景?面试官心理分析假设现在聊的话题是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么接下来他可能开始要跟你聊分布式相关的其它问题了,比如分布式锁。分布式锁这个东西很常用,无论做 Java 系统开发或者分布式系统,都可能会有一些场景会用到。而最常用的分布式锁就是...原创 2019-10-29 00:00:09 · 136 阅读 · 0 评论 -
《使用RocketMQ 做Spring Cloud异步场景分布式事务》
作者:陶陶技术笔记 链接:https://www.cnblogs.com/zlt2000/p/11570917.html?utm_source=tuicool&utm_medium=referral一、背景在微服务架构中,我们常常使用异步化的手段来提升系统的吞吐量和解耦上下游,而构建异步架构最常用的手段就是使用 消息队列(MQ) ,那异步架构怎样才能实现数据...原创 2019-09-23 14:24:19 · 433 阅读 · 0 评论 -
Redis 复制过程详解
作者:程序员历小冰原文:https://mp.weixin.qq.com/s/0VVYTyAI1egfs2Fxcrme3ARedis 的复制功能分为同步( sync )和命令传播( command propagate )两个步骤:同步用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。 命令传播则用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一...原创 2019-09-24 22:24:54 · 144 阅读 · 1 评论 -
《2019 DevOps 必备面试题——容器化和虚拟化》
作者:Saurabh Kulshrestha原文: https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3让我们看看你对容器和虚拟机的了解程度。Q1. 什么是容器?容器提供了从开发人员的笔记本电脑到测试环境、从类生产环境到生产环境一致的运行环境。接下来给出容器的定义,容器由一个完整的运行环...原创 2019-09-25 17:32:03 · 348 阅读 · 0 评论 -
深入JVM中的每一个底层原理,让面试关刮目相看
1 官网1.1 寻找JDK文档过程www.oracle.com -> 右下角Product Documentation -> 往下拉选择Java -> Java SE documentation-> Previous releases -> JDK 8 -> 此时定位到:https://docs.oracle.com/javas......原创 2019-09-25 19:56:35 · 334 阅读 · 0 评论 -
《MySQL主从不一致情形与解决方法》
一、MySQL主从不同步情况1.1 网络的延迟由于mysql主从复制是基于binlog的一种异步复制通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。1.2 主从两台机器的负载不一致由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql...原创 2019-09-26 15:25:57 · 166 阅读 · 0 评论 -
阿里面试之 MySQL 20 问,Java程序员秋招必会
对于程序员来说, 面试内容一般分为两个部分:编程面试题部分 + 数据库面试题部分 。据不完全调查,作为数据库中的主流选择 MySQL 的薪资待遇正在逐年增加,而且似乎不仅仅是程序员在学,就连很多产品经理和运营人也开始学习 MySQL 去分析数据。对于技术面试来说,考察的核心包含以下两个特点:考察的知识点广,因为不同的公司和不同的面试官技能知识结构是不同的,所以所关注的问题和面...原创 2019-09-27 17:08:04 · 469 阅读 · 0 评论 -
一篇文章搞清楚HashMap和TreeMap的内部结构
一、HashMap1、基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2、HashMap 的实例有两个参数影响其性能:初始容量 和 加载因子。容量是哈希表中桶的数量,初始...原创 2019-10-08 20:58:40 · 114 阅读 · 0 评论 -
《集群、限流、缓存 BAT 大厂无非也就是这么做的》
前言前阵子有网友询问,如何优化网站?这个问题真的很大,跟他简单的聊了一下,随便说了几点,觉得有必要整理一篇文章出来,正好前阵子在做爬虫博客,于是把大体思路分享出来,与大家互通有无,共同进步。优化版本一系统开始是这样子的,一个 Tomcat 拖着一个 MySql 服务,跑在一个 2C 4G 的Linux服务器上,所有的请求都走 Tomcat,所有的查询都走 MyS...原创 2019-08-29 14:42:31 · 182 阅读 · 0 评论 -
果断收藏:《JVM史上最最最最全实践优化》没有之一?
1.Jvm的运行参数在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。1.1 三种参数类型jvm的参数类型分为三类,分别是 : 标准参数 : -help -version -X参数(非标准参数) -Xint -Xcomp -XX参数(...原创 2019-07-09 22:33:29 · 169 阅读 · 0 评论 -
收藏版:《JDK13新特性详解》
作者:木九天原文:https://my.oschina.net/mdxlcj/blog/31070211、switch优化更新JDK11以及之前的版本:switch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: ...原创 2019-09-21 17:22:39 · 493 阅读 · 0 评论 -
没有预热,这不叫高并发,叫并发高
作者:小姐姐味道链接:https://juejin.im/post/5d10c21ee51d4576bc1a0e26前言:大家都知道,高并发系统有三把斧子:缓存、熔断和限流。但还有一把斧子,经常被遗忘在角落里,郁郁不得志,那就是预热。现象举例先说两个现象。这些现象,只能在并发高的系统中出现。好吧,它已经引起了多个故障。一、DB重启后,瞬间死亡一个高并...转载 2019-06-26 14:55:16 · 843 阅读 · 0 评论