程序人生
文章平均质量分 85
Java大蜗牛
公众号「Java大蜗牛」专注Java技术/面试技巧!求关注!
展开
-
别学了,这 5 种即将消亡的编程语言
每个编码的人都有自己喜欢的语言。拥有一种首选语言有很多原因,但是,我们的语言有时会变得很单调,它不再由制造它的公司维护,或者人们出于某种无法解释的原因放弃使用它。但是,也有的编程语言例外,比如C语言,它就经受住了时间的考验,在许多情况下仍然是最流行的编程语言。编程语言都有自己的生命周期,对某些语言来说,属于它们的时代似乎已经结束了,今天,我们就来盘下一下目前前景最黯淡的5种语言:1. Visual Basic .NETMicrosoft Visual Basic.NET 是 Micr原创 2022-01-17 20:45:00 · 744 阅读 · 0 评论 -
从零讲JAVA,给你一条清晰地学习道路,该学什么就学什么
Java就该这么学!原创 2022-01-15 20:15:00 · 242 阅读 · 0 评论 -
拿去吧,基于SpringBoot 的CMS系统(附源码)
推荐关注|Java大蜗牛编辑:蜗牛|来源:铭飞项目介绍大家好,我是蜗牛。今天推荐的是基于SpringBoot 2架构,前端基于vue、element ui。每月定期更新版本,为开发者提供上百套免费模板,同时提供适用的插件(文章、商城、微信、论坛、会员、评论、支付、积分、工作流、任务调度等...),一套简单好用的开源系统、一整套优质的开源生态内容体系。铭飞的使命就是降低开发成本提高开发效率,提供全方位的企业级开发解决方案。系统特点 免费完整开源:基于MIT协议,源代码完全开源,无商业限制原创 2022-01-13 14:50:46 · 505 阅读 · 0 评论 -
我吐了!MySQL 批量插入:如何不插入重复数据呢?
知识这个东西,看来真的要温故而知新,一直不用,都要忘记了 【获取资料】业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入。那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢?向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率?看来这个问题不止我一个人苦恼过。解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了。.原创 2021-06-28 23:26:50 · 167 阅读 · 0 评论 -
定个小目标!挑战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 · 228 阅读 · 0 评论 -
看完这篇还不懂 MySQL 主从复制?那就回家葛优躺吧!
前言我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机。这样我们保存在 MySQL 数据库的数据就会丢失,那么该怎么解决呢?其实在 MySQL 本身就自带有一个主从复制的功能,可以帮助我们实现负载均衡和读写分离。对于主服务器(Master)来说,主要负责写,从服务器(Slave)主要负责读,这样的话,就会大大减轻压力,从而提高效率。接下来,一起来看看它都有哪些核心知识点:简介随着业务的增长,一台数据服务器已经满足不了需求了原创 2021-05-28 16:10:43 · 1749 阅读 · 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 · 140 阅读 · 0 评论 -
SQL查询语句总是先执行SELECT?你们都错了。。。
很多 SQL 查询都是以 SELECT 开始的。不过,最近我跟别人解释什么是窗口函数,我在网上搜索”是否可以对窗口函数返回的结果进行过滤“这个问题,得出的结论是”窗口函数必须在 WHERE 和 GROUP BY 之后,所以不能”。于是我又想到了另一个问题:SQL 查询的执行顺序是怎样的?好像这个问题应该很好回答,毕竟自己已经写了上万个 SQL 查询了,有一些还很复杂。但事实是,我仍然很难确切地说出它的顺序是怎样的。SQL 查询的执行顺序于是我研究了一下,发现顺序大概是这样的。SELECT 并不是转载 2021-01-19 21:23:31 · 140 阅读 · 0 评论 -
Spring 和 SpringBoot 之间到底有啥区别?
概述对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累、我慢慢理解了这两个框架到底有什么区别,相信对于用了 SpringBoot很久的同学来说,还不是很理解 SpringBoot到底和 Spring有什么区别,看完文章中的比较,或许你有了不同的答案和看法!什么是Spring作为 Java开发人员,大家都 Spring都不陌生,简而言之, Spring框架为开发 Java应用程序提供了全面的基础架构支持。.原创 2021-01-19 15:19:20 · 274 阅读 · 0 评论 -
头秃了,Spring Boot 自动配置源码解析了解一波
大家好,我是Java大蜗牛,一个渴望在互联网行业做到很牛的蜗牛。可柔可刚,点赞则柔,白嫖则刚!死鬼~~~看完记得给我来个三连哦!目录前言 源码版本 @SpringBootApplication干了什么? @EnableAutoConfiguration干了什么? 总结前言为什么Spring Boot这么火?因为便捷,开箱即用,但是你思考过为什么会这么便捷吗?传统的SSM架构配置文件至少要写半天,而使用Spring Boot之后只需要引入一个starter之后就能直接使.原创 2020-11-24 13:55:29 · 157 阅读 · 0 评论 -
《SpringMVC 进阶版》
请求限制一些情况下我们可能需要对请求进行限制,比如仅允许POST,GET等...RequestMapping注解中提供了多个参数用于添加请求的限制条件value 请求地址 path 请求地址 method 请求方法 headers 请求头中必须包含指定字段 params 必须包含某个请求参数 consumes 接受的数据媒体类型 (与请求中的contentType匹配才处理)...原创 2020-02-13 23:39:04 · 304 阅读 · 0 评论 -
目前最系统的程序员未来职业规划路线,请收藏
1. 什么是程序员上面图片真实的反应了一些程序员的生活常态,那么首先来说一下什么是:程序员吧,所谓程序员就是从事程序开发,程序维护的工作者。说到底就是一个普通的打工仔,一个"搬砖工",程序员也叫做码农。2. 关于职业规划很程序员每天都在写代码,每天都很忙,而当面试官问他:“你的职业规划是什么?”程序员答:“没有”。那如果让你选择一个角色你会选择什么?比如...原创 2020-02-10 22:09:58 · 5822 阅读 · 1 评论 -
《分享几道高频 Redis 高频面试题,面试不用愁》
1、说说 Redis 都有哪些应用场景?缓存:这应该是 Redis 最主要的功能了,也是大型网站必备机制,合理地使用缓存不仅可以加 快数据的访问速度,而且能够有效地降低后端数据源的压力。 共享Session:对于一些依赖 session 功能的服务来说,如果需要从单机变成集群的话,可以选择 redis 来统一管理 session。 消息队列系统:消息队列系统可以说是一个大型网站的...原创 2019-12-27 22:10:19 · 150 阅读 · 0 评论 -
JVM内存区域与垃圾回收
1、JAVA内存区域与内存溢出1.1、概述Java中JVM提供了内存管理机制,Java虚拟机在执行Java程序的过程中会把内分分为不同的数据区,如图:1.2、程序计数器程序计数器是当前线程所执行的字节码的行号指示器,作用就是根据计数器的值获取下一条要执行的字节码指令。当执行的是java方法,则记录的是正在执行的虚拟机字节码指令的地址,如果是Native方法,则这个计数器的...原创 2019-12-24 22:26:40 · 161 阅读 · 0 评论 -
线程安全之Synchronized关键字
1 多线程下为什么会存在线程安全问题线程的合理使用能够提升程序的处理性能,一是能够利用多核 CPU 来实现线程的并行执行,二是线程的异步化执行能够提高系统的吞吐量。虽然线程有这些优点,但同时也带来了很多问题。比如说:1.1 共享变量带来的安全性问题先来看个图:一个变量 i ,如果线程 A 或者线程 B 单独访问并且修改变量 i 的值没有任何问题,那如果并行的...原创 2019-12-20 21:49:28 · 216 阅读 · 0 评论 -
《初步了解JVM》第1章
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制、编译过程和如何对Java程序进行调优相信都会有一个很好的认知。废话不多说,直接带大家来初步认识一下JVM。什么是JVM?JVM(Java Virtual Machine)是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据、内存和寄存器。看到这里,可能不懂JVM...原创 2019-12-19 15:48:40 · 127 阅读 · 0 评论 -
MySQL高频面试题的灵魂拷问
唯一索引比普通索引快吗, 为什么?唯一索引不一定比普通索引快, 还可能慢。查询时, 在未使用limit 1的情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回. 如此看来唯一索引少了一次匹配, 但实际上这个消耗微乎其微. 更新时, 这个情况就比较复杂了. 普通索引将记录放到change buffer中语句就执行完毕了. 而对唯一索引而言, ...原创 2019-12-18 22:08:44 · 108 阅读 · 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 · 295 阅读 · 0 评论 -
《关于MySQL的一些骚操作》
概要回顾以前写的项目,发现在规范的时候,还是可以做点骚操作的。假使以后还有新的项目用到了MySQL,那么肯定是要实践一番的。为了准备,创建测试数据表(建表语句中默认使用utf8mb4以及utf8mb4_unicode_ci,感兴趣的读者可以自行搜索这两个配置):CREATE TABLE `student` ( `id` int(11) unsigned NOT NUL...原创 2019-11-18 20:36:39 · 168 阅读 · 0 评论 -
Springboot:高并发下耗时操作的实现
高并发下的耗时操作高并发下,就是请求在一个时间点比较多时,很多写的请求打过来时,你的服务器承受很大的压力,当你的一个请求处理时间长时,这些请求将会把你的服务器线程耗尽,即你的主线程池里的线程将不会再有空闲状态的,再打过来的请求,将会是502了。加q群:478052716 免费领取(Java架构资料,视频资料,BATJ面试资料)请求流程图http1 http2 ht...原创 2019-11-17 20:37:26 · 2387 阅读 · 0 评论 -
Zookeeper有哪些应用场景?面试官希望听到这“4点”
zookeeper 都有哪些使用场景?面试官心理分析假设现在聊的话题是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了。那么接下来他可能开始要跟你聊分布式相关的其它问题了,比如分布式锁。分布式锁这个东西很常用,无论做 Java 系统开发或者分布式系统,都可能会有一些场景会用到。而最常用的分布式锁就是...原创 2019-10-29 00:00:09 · 139 阅读 · 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 · 447 阅读 · 0 评论 -
请问:Redis和mysql数据怎么保持数据一致的?
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Red...原创 2019-08-28 22:30:31 · 1271 阅读 · 0 评论 -
一篇文章搞清楚HashMap和TreeMap的内部结构
一、HashMap1、基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2、HashMap 的实例有两个参数影响其性能:初始容量 和 加载因子。容量是哈希表中桶的数量,初始...原创 2019-10-08 20:58:40 · 123 阅读 · 0 评论 -
当面试官问到:《MySQL数据库的锁机制》该如何拿分?
为什么要加锁?问题背景当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。要解决的问题多用户环境下保证数据库完整性和一致性锁是什么在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。 加锁是实现数据库并发控制的一个非...原创 2019-09-01 15:04:21 · 435 阅读 · 1 评论 -
《Java 编写基于 Netty 的 RPC 框架》
一 简单概念RPC: ( Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样.阻塞IO :当阻塞I/O在调用InputStream.read()方法是阻塞的,一直等到数据到来时才返回,同样ServerSocket.accept()方法时,也是阻塞,直到有客户端连接才返回,I/O通信模式如下:...原创 2019-08-30 23:29:58 · 131 阅读 · 0 评论 -
安排:《蚂蚁花呗1234面:Redis+分布式架构+MySQL+linux+红黑树》
前言:大厂面试机会难得,为了提高面试通关率,建议朋友们在面试前先复盘自己的知识栈,依据掌握程度划分重要、优先级,系统地去学习!如果不准备充分就去参加面试,既会失去进入大厂的机会,更是对自己的不负责。蚂蚁花呗一面(一个小时):1、Java容器有哪些?哪些是同步容器,哪些是并发容器?2、ArrayList和LinkedList的插入和访问的时间复杂度?3、java反射原...原创 2019-08-30 15:04:34 · 219 阅读 · 0 评论 -
《用消息服务来提高微服务的可靠性》
前言:过去,我们很容易通过:取出裸机服务器、安装所有必需的软件、添加所有应用代码、将数据加载上去的一系列流程,来部署单体应用程序(monolithic application)。由于一切组件都集中在一台服务器上,因此这种应用不但能够处理较大的流量,并且非常容易管理与部署。然而,此类应用存在的大问题便是效率低下。例如,您必须事先估算峰值时的负载,才能配上足够性能的服务器。但是具有此...原创 2019-08-29 22:20:54 · 178 阅读 · 0 评论 -
《集群、限流、缓存 BAT 大厂无非也就是这么做的》
前言前阵子有网友询问,如何优化网站?这个问题真的很大,跟他简单的聊了一下,随便说了几点,觉得有必要整理一篇文章出来,正好前阵子在做爬虫博客,于是把大体思路分享出来,与大家互通有无,共同进步。优化版本一系统开始是这样子的,一个 Tomcat 拖着一个 MySql 服务,跑在一个 2C 4G 的Linux服务器上,所有的请求都走 Tomcat,所有的查询都走 MyS...原创 2019-08-29 14:42:31 · 194 阅读 · 0 评论 -
《Tomcat和JVM的性能调优你真的学会了吗?》总结篇
Tomcat性能调优:找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置,下图是我根据我机子的性能设置的一些参数值,给各位详细解释一下吧:1、 URIEncoding=“UTF-8” :设置Tomc...原创 2019-08-28 21:38:10 · 353 阅读 · 0 评论 -
《MyCat分库分表策略详解》
在我们的项目发展到一定阶段之后,随着数据量的增大,分库分表就变成了一件非常自然的事情。常见的分库分表方式有两种:客户端模式和服务器模式,这两种的典型代表有sharding-jdbc和MyCat。所谓的客户端模式是指在各个连接数据库的客户端中引用额外提供的jar包,以对连接数据库的过程进行封装,从而达到根据客户端的配置,将不同的请求分发到不同的数据库中的目的;而服务端模式是指,搭建一个数据...原创 2019-08-26 17:28:10 · 327 阅读 · 0 评论 -
MySQL高可用架构:mysql+keepalived实现
系统环境及架构#主机名 系统版本 mysql版本 ip地址mysqlMaster <a href="https://www.linuxprobe.com/" title="centos" target="_blank">centos</a>7.4 mysql5.7 192.168.1.42mysqlSlav...原创 2019-08-16 20:43:21 · 169 阅读 · 0 评论 -
《大牛到底是如何阅读JDK源码的?》一起来学习一下
前言:如何阅读源码,是每个程序员需要面临的一项挑战,为什么需要阅读源码?从实用性的角度来看,主要有三个目的:第一,解决手头的新问题或者新需求;第二,真正理解一部分理论的落地实现;第三,应对面试。端正心态在准备投身到阅读源码的事业之前,首先需要端正一下心态:阅读源码是一场持久战,浅尝辄止的话,顶多能写几篇水文,吸点粉糊弄下新手,对自身实力的提高没有显著作用。 ...原创 2019-08-14 21:57:09 · 475 阅读 · 1 评论 -
脏读、幻读和不可重复读?为啥?
前言:一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 例子: 对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中A和B的存款总额为x元不变。Isolation 隔离性:数据库允许多个并发事务同事对数据进行操作,隔离性保证各个事务相互独立,事务处理时的中间状态对其它事...原创 2019-08-19 21:50:11 · 433 阅读 · 1 评论 -
“普通本科Java程序员,如何五年存够80万买房?就靠这选择!”
前言:最近我们部门来了几个 年纪轻轻的本科生,最小的比我们小五岁左右,这对于我们这些老油条来说还是比较有冲击力的。想想自己也是90出头的老腊肉了,想当年我上大学的时候,除了整天打游戏,好像什么事情也没有干成,好在最后一段时间觉醒 进入阿里。想拿高薪最基本的条件就是:好学历 硬技术, 大家都知道,BAT 在目前可以代表着中国互联网公司的最高水平,至少在技术方面是可以代表其最高水平的,本科生如...原创 2019-09-03 19:19:11 · 547 阅读 · 0 评论 -
金九银十面试前必须要知道的“21道Redis面试题”
1、使用redis有哪些好处?速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支持丰富数据类型,支持string,list,set,sorted set,hash 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除...原创 2019-09-03 22:21:51 · 145 阅读 · 0 评论 -
阿里面试之 MySQL 20 问,Java程序员秋招必会
对于程序员来说, 面试内容一般分为两个部分:编程面试题部分 + 数据库面试题部分 。据不完全调查,作为数据库中的主流选择 MySQL 的薪资待遇正在逐年增加,而且似乎不仅仅是程序员在学,就连很多产品经理和运营人也开始学习 MySQL 去分析数据。对于技术面试来说,考察的核心包含以下两个特点:考察的知识点广,因为不同的公司和不同的面试官技能知识结构是不同的,所以所关注的问题和面...原创 2019-09-27 17:08:04 · 480 阅读 · 0 评论 -
《MySQL主从不一致情形与解决方法》
一、MySQL主从不同步情况1.1 网络的延迟由于mysql主从复制是基于binlog的一种异步复制通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。1.2 主从两台机器的负载不一致由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sql...原创 2019-09-26 15:25:57 · 178 阅读 · 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 · 345 阅读 · 0 评论 -
《2019 DevOps 必备面试题——容器化和虚拟化》
作者:Saurabh Kulshrestha原文: https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3让我们看看你对容器和虚拟机的了解程度。Q1. 什么是容器?容器提供了从开发人员的笔记本电脑到测试环境、从类生产环境到生产环境一致的运行环境。接下来给出容器的定义,容器由一个完整的运行环...原创 2019-09-25 17:32:03 · 359 阅读 · 0 评论