文章的开头大家先来看一看一道字节的算法题,看是否能做出来: 给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助) 大家有没有一脸懵逼的感觉?(我
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢? 下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己
最近好几次有开发同学在钉钉上问我,比如下图: 问题归纳起来就是: 在MySQL里面update一条记录,语法都正确的,但记录并没有被更新... 刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是有区别 ,这里我用测试数据来模拟下: 有问题的S
光学字符识别(OCR)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。 前几个月,猿妹曾和大家分享过一个热门的中文OCR项目———chineseocr_lite。这两天猿妹才知道,百度也开源了一款超轻量级中文O
前言 大家都知道,在我们的技术生涯中,总是要不断针对新的需求去设计研发新的系统,但是系统设计是一个不断迭代的过程,在迭代中发现问题并修复问题,即满足需求的系统是不断迭代优化出来的,这是一个持续的过程,我个人不相信完美架构银弹。不过,如果一开始就有好的基础系统设计,未来可以更容易达到一个比较满意的目
美团(Leaf) Leaf是美团推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨的一句话:“There are no two identical leaves in the world.”(“世界上没有两片相同的树叶”),取个名字都这么有寓意,美团程序员牛掰啊! Leaf的优势:
如果你打算好好学习一下 MySQL,性能优化肯定是绕不过去一个问题。当你撸起袖子准备开始的时候,突然发现一个问题摆在眼前,本地数据库中没那么大的数据量啊,几条数据优化个毛线啊。生产库里数据多,但谁敢直接在生产环境动手啊,想被提前优化吗? 要知道,程序员从不轻言放弃,没有数据我们就自己创造
HTTP缓存策略 http协议是什么? HTTP协议(超文本传输协议),简单来说就是一种网络传输协议, 浏览器请求服务器获取内容就是基于http协议或者https协议。 使得计算机可以在浏览器和服务器之间传输文字、图片、二进制、音频、视频等资源。 既然http负责传输资源,那么缓存是必不可少的
本文转至Java中文社群-老王 年少不知优化苦,遇坑方知优化难。——村口王大爷 全文内容预览: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范和原则呢? 所以,在开始之前(MySQL 优化),咱们先来聊***能优化的一些原则。 性能优化原则
分布式系统的概念 随着互联网的不断发展,大数据、高并发和快响应是互联网系统的必然要求。但是在大数据和高并发的情况下,要求快响应是比较苛刻的,因为大量的数据会导致查找数据的时间变长,高并发会使互联网系统因繁忙而变慢,进而影响响应速度。所以说单机系统已经不可能满足现在互联网了,为了满足互联网的苛
转至Java知音 在讲策略模式之前,我们先看一个日常生活中的小例子: 现实生活中我们到商场买东西的时候,卖场往往根据不同的客户制定不同的报价策略,比如针对新客户不打折扣,针对老客户打9折,针对VIP客户打8折... 现在我们要做一个报价管理的模块,简要点就是要针对不同的客户,提供不同的折扣报价
工欲善其事,必先利其器。 今天为大家分享的这些idea插件都是自己在开发实战中一直使用的一些插件,真的是溜到起飞,非常的好用。 1、Alibaba Java Coding Guidelines 作为一名开发人员,《阿里巴巴开发手册》我们基本人手必备,自觉遵循《阿里巴巴开发手册》的开发规约,是我
微服务 微服务,是著名的00 ( 面向对象,Object Oriented) 专家Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人们意识到它对于软件领域所带来的影响力。
面试技巧 其实,这上面两篇文章中,我已经介绍了一些关于面试的技巧,比如说,你要多关注常用组件的原理,多了解项目中的核心监控指标等等。但当你遇到一个心仪的职位的时候,仅仅做这些准备肯定是远远不够的。那么,对不同级别的候选人来说,面试官会分别关注什么呢?准备技术面试时,你需要重点准备哪些呢?在带你了解
现在面试介绍过往的项目经历是面试过程中一个很重要的组成部分,相信你在以往的面试中也一定深有体会。从项目经历中,面试官不仅可以了解到项目研发的整体过程,也能够从中了解到你的技术方案设计思路,排查线上问题的能力,以及对于项目架构演进方向的把握。那么,在介绍自己的项目经历时,你要如何介绍才能抓住面试官内心
经历过面试的你一定知道, 社招岗位的面试里一定会包含项目经历介绍的。面试官会问及一些特定场景下实现方案的设计,还会问你一些基础知识和基本算法。而在考察基础知识时,你一定被面试官追问过,某某组件的实现原理是什么。 那么,对于仅仅使用组件的开发人员来说,了解组件的实现原理真的很重要吗?这会不会是面试官
大家先看一下Spring全家桶思维导图,这上面的技术不知道各位大佬们是不是都用过。 简单说一下这些技术吧 Spring Framework 它就是我们常说的Spring框架,它是一个软件设计架构层面的框架,为基于Java的企业级应用程序提供了一套标准流程和配置模型,可部署
转至架构师进阶之路 最近有些读者反应:看了很多网上关于JVM的文章,但是大部分文章不够通俗易懂,看不太明白。希望笔者能写几篇关于JVM的文章,刚好我也有这方面的打算。从本文开始推出JVM系列原创文章! GC-垃圾回收,是Java程序员常聊的话题,理解JVM垃圾回收的原理和过程,不但有助于写出高质
Hashmap是Java中最常用的集合类型,使用非常广泛。不过,有些细节问题很多人没有关注过,这也使很多人在面试时栽了跟头!比如,阿里很多团队为了考察候选人的基础,就出了这么一个面试题:为什么HashMap的初始长度和扩容长度是2的N次幂? HashMap的数据结构 先了解一下HashMap
微服务越来越火。很多互联网公司,甚至一些传统行业的系统都采用了微服务架构。体会到微服务带来好处的同时,很多公司也明显感受到微服务化带来的一系列让人头疼的问题。本文是笔者对自己多年微服务化经历的总结。如果你正准备做微服务转型,或者在微服务化过程中遇到了困难。此文很可能会帮到你! 写在前面
Netty作为一个异步事件驱动的网络应用程序框架,可用于快速开发可维护的高性能协议服务器和客户端。它入门门槛相对较高,是因为这方面的资料较少,并不是因为它有多难,大家其实都可以像搞透Spring一样搞透Netty,各位看官请往下看。 Netty特点: 设计优雅 使用方便 高性能 安全
在网上看到一份挺有代表性的阿里面经,跟大家分享一下~ 前言 在接触Java之前我接触的比较多的是硬件方面,用的比较多的语言就是C和C++。到了大三我才正式选择Java方向,到目前为止使用Java到现在大概有一年多的时间,所以Java算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试面试,很多
互联网系统,经常会有数据迁移的需求。系统从机房迁移到云平台,从一个云平台迁移到另一个云平台,系统重构后表结构发生了变化,分库分表,更换数据库选型等等,很多场景都需要迁移数据。 在互联网行业,很多系统的访问量很高,即便在凌晨两三点也有一定的访问量。由于系统数据迁移,导致服务暂停几分钟,是很难被业务方
SpringCloud Alibaba是什么 它致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托Spring Cloud Alibaba,您只需要添加一些注解和少量配置
转至架构师进阶之路 最近,技术群里有人问了一个有趣的技术话题:单核CPU, 1G内存的超低配机器,怎么做JVM调优? 这实际上是两个问题。单核CPU的超低配机器,怎么充分利用CPU?单核CPU, 1G内存的超低配机器,怎么做JVM调优? 怎么充分利用CPU? 这个问题不能一概而
先说一下基本情况,本次是对线上商品服务的JVM优化。商品服务的访问量非常高,单机QPS在3000左右,线上总共部署了15个商品服务节点。JVM堆内存大小是8G,其中给新生代分配了2G,老年代垃圾回收器采用CMS,新生代垃圾回收器是ParNew。 优化前的状况 首先我们使用 jstat 查看了
前言 不知道大家有没有这种感觉,大学时学习计算机网络基础的时候,看到各种网络协议与硬件功能实现原理就头疼。但这些底层原理又是需要知道的,虽然网络协议这块好像属于网络工程师的范畴,但其实对Java程序员来说其实也是一个基础盘,比如Netty网络框架这块要手写一个RPC框架就会意识到知道TCP/IP协
转至架构师进阶之路 最近,技术群里有人问了一个有趣的技术话题:单核CPU, 1G内存的超低配机器,怎么做JVM调优? 这实际上是两个问题。单核CPU的超低配机器,怎么充分利用CPU?单核CPU, 1G内存的超低配机器,怎么做JVM调优? 怎么充分利用CPU? 这个问题不能一概而
文章内容很聚焦,但干货十足。不注意的话你可能会落入陷阱。 concurrent包里的ExecutorService,是一个接口,继承的是Executor,而Executor里只有一个方法。 public interface Executor { void execute(Runnable
前言 近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,它的设计初衷是解决Spring各版本配置工作过于繁重,目前已经逐渐替代传统SSM架构。但SSM和Spring Boot并不冲突。Spring Boot更简单、更自动化,减少了传统SSM开发的配置。程序员在用Spring
存储引擎 很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的? 其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。 有哪些已有的存储引擎可以让我
反射是所有面向对象语言的一个重点,它为开发者提供了灵活的操作可能。利用反射可以获取不同对象/结构体的信息,制定不同的策略,实现复杂的操作。 go与java的反射操作思维大有不同,学习的时候也遇到过一些困难,记录下来加深印象。 任务:读取Excel文件,根据传入的结构体生成对应的对象。
Tomcat是什么 Tomcat是全世界最著名的基于Java语言的轻量级应用服务器,是一款完全开源免费的Servlet容器实现。同时,它支持HTML、JS等静态资源的处理,因此又可以作为轻量级Web服务器使用。 套话就不多说了,有好东西就是要分享出来,下面我会展示出一份Tomcat架构
什么是微服务 既然提到了微服务 就不得不介绍一下他们 Springcloud Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring B
目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持RPC 阐述背景 不吹嘘,不夸张,项目中用到ID生成的场景确实挺多。比如业务要做幂等的时候,如果没有合适的业务字段去做唯一标识,那就需要单独生成一个唯一的标识,这个场景相信
很多技术大会上的分享大多“高大上” 亿级流量、 超大型研发团队,虽然值得借鉴,但由于应用场景与研发资源的差异 般企业并不容易落地。其实 ,中小型研发团队在IT还是占大多数 他们在技术架构方面的问题较多 技术阻碍业务、跟不上业务发展的情况很常见。 虽然我们大部分人群还只是停留在码农的阶段,但是秉
一、Session 和 cookie 的区别 二、TCP三次握手和四次挥手的流程,断开连接如果只有两次握手,会出现什么。 三、TIME_WAIT 和 CLOSE_WAIT的区别 四、为什么需要 TIME_WAIT 状态 五、为什
OSI 参考模型 OSI 从上到下分为 7 层: 应用层:应用层协议定义的是应用进程间的通信和交互的规则,不同的网络应用需要不同的应用层协议 表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式 会话层:在数据传输中设置和维护电脑网络中两台电脑之间的通信连接 传输层:向两
昨天下楼的时候,有一个HR小姐姐突然拉住我,让我等她一会,那一刻,我连以后小孩叫啥都想好了,可是她就问了我说前段时间我们老大面试问设计模式,最近又问设计模式原则,这俩是个啥啊,为什么问的这么多啊 一盆冷水啊,可能我的归宿就就是自己new一个后宫了,哎,耐心的和她解释清楚之后(谁让她是小姐姐呢)
计算机网络是现代信息社会的基础,人们的生活和生活越来越依赖于网络。作为一名合格的程序员,就应该上知天文下知地理,上班摸鱼之际,除了去网络上开车(手动狗头),还应该巩固一下自己的网络底层知识。这次面华为也就是抱着试一试的心态,面试过程就不与大家多说了,但事后确实意识到自己网络方面知识的欠缺,于是写了这
对比 微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。 一、Dubbo与SpringCl
Spring IoC Q1:IoC 是什么? Q2:IoC 容器初始化过程? Q3:依赖注入的实现方法有哪些? Q4:依赖注入的相关注解? Q5:依赖注入的过程? Q6:Bean 的生命周期? Q7:Bean 的作用范围? Q8
Netty Netty就是基于NIO的网络(Socket)客户端服务端实现框架,它简化了TCP/UDP客户端服务端编程,开发人员不再关注底层的Socket读取和写入,而且Netty提供了不少的handler(如http、mqtt、redis协议等)实现,简化了基于网络协议的编程复杂度。
一、从一个MyShop开始说起 为了讲清BFF是个啥,这里引用一个案例,来跟大家分享一下,并尽力说清楚BFF是啥,又是如何演化出来的。 假设我们在一个开发团队中,开发了一个叫做MyShop的电商项目,它采用的是微服务的架构风格。它经历过几次架构调整,我们就跟着它的调整来看看BFF是怎么演化出来的
目前大家都在说微服务,其实微服务不是一个名字,是一个架构的概念,大家现在使用的基于RPC框架(dubbo、thrift等)架构其实也能算作一种微服务架构。 目前越来越多的公司开始使用微服务架构,所以在目前招聘java岗位时,有springcloud经验还是会占一点优势,今天young就和大家一起来
Redis Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis 提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:Redis的数据结构致力于帮助用户解决问题,而不会像其他数据库那样,要求用户扭曲问
先说背景 前段时间有个读者问我,他说他们的 RPC 框架用的是 Dubbo,当对接一个新服务的接口时就需要开通对应的网络关系。 比如我是 A 服务,第一次对接 B 服务的 Dubbo 接口,那么我需要开通 A 服务到 B 服务的对应的 Dubbo 端口的网络访问权限。 但是有的时候总是有人忘记
马斯克用火箭把人送上天,SpaceX粉丝把火箭有关信息贴到GitHub。 3.7k Star,GitHub热榜,SpaceX粉丝组织r/SpaceX公布了他们的REST API。 △r/SpaceX r/SpaceX是SpaceX粉丝自发组织的社区,日常搜集整理SpaceX的火箭发射
Kakfa介绍 Kafka是什么 Kafka最初是LinkedIn的内部内部基础设施系统。它被认为是一个流平台,在Kafka上可以发布和订阅流数据,并把它们保存起来、进行处理。但是我们在使用Kafka中,最多的就是将它作为一个消息系统使用,类似于ActiveMQ、RabbitMQ等。但是Kafk
一、分布式架构详解 1、分布式发展历程 1.1 单点集中式 特点:App、DB、FileServer都部署在一台机器上。并且访问请求量较少 1.2 应用服务和数据服务拆分 特点:App、DB、FileServer分别部署在独立服务器上。并且访问请求量较少 1.3 使用缓存改善性能
首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jdk java.util 并发包中已经为我们提供了这些方法去加锁, 比如synchronized
一起来学习 mybatis MyBatis 令人喜欢的一大特性就是动态 SQL。 在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。 MyBatis 动态 SQL 的出现, 解决了这个麻烦。 MyBatis通过 OGNL 来进行动态 SQL 的使用的。 目前,
这篇文章跟大家聊聊线程,讲到线程,⼜不得不提进程了~ 进程我们估计是很了解的了,在windows下打开任务管理器,可以发现我们在操作系统上运⾏的程序都是进程。 什么是叫一个进程? 什么叫一个线程? 进程:做一个简单的解释,你的硬盘上有一个简单的程序,这个程序叫QQ.exe,这是一个程序,这个程
⼀、什么是ThreadLocal 声明:本⽂使⽤的是JDK 1.8 ⾸先我们来看⼀下JDK的⽂档介绍: 结合我的总结可以这样理解:ThreadLocal提供了线程的局部变量,每个线程都可以通过 set() 和get() 来对这个局部变量进⾏操作,但不会和其他线程的局部变量进⾏冲突
Java虚拟机是什么 Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。 为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性。而使用
一、线程的概述 进程:正在运行的程序,负责了这个程序的内存空间分配,代表了内存中的执行区域。 线程:就是在一个进程中负责一个执行路径。 多线程:就是在一个进程中多个执行路径同时执行。 1.1多线程的好处: 解决了一个进程里面可以同时运行多个任务(执行路径)。 提供资源的利用率,而不是提供
Kakfa介绍 Kafka是什么 Kafka最初是LinkedIn的内部内部基础设施系统。它被认为是一个流平台,在Kafka上可以发布和订阅流数据,并把它们保存起来、进行处理。但是我们在使用Kafka中,最多的就是将它作为一个消息系统使用,类似于ActiveMQ、RabbitMQ等。但是Kafk
大家好,我今天的分享主要围绕以下几点,首先跟大家简要介绍一下微博服务化的演进过程,其次是微博自研跨语言RPC 框架 Motan 实现的一些关键技术要点,主要是跨语言方面,再次,结合目前市面上的一些Service Mesh 实现对比,给出基于 Motan-Go 的更符合微博场景的Weibo Mesh
相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。 手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确
SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @ConfigurationProperties 等几个注解来进行自动配置完成的。@EnableAutoConf
这篇文章分享我一个学弟的美团实习面试经历,万万没想到现在大厂实习面试也这么难,下面是他的面经,各位读者老哥可以参考浏览。 美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会。10月23日中午HR打电话过来预约了下午4点半面试,
一:Ribbon简介 Ribbon是Netflix公司开源的一个负载均衡的项目,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。Feign已经默认使用了Ribbon。 二:Ribbon的工作流程 1:user微
一个完整的极简后台框架,方便做小项目的时候可以快速开发。 这里面多贴图片和代码,做个参考吧,代码可以下载下来自己看看,里面这套后台模板不错,喜欢的拿去。 先放几张图 项目介绍 SpringBoot,实现了一个极简单的后台框架 项目配置 maven
Jenkins是什么 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 Jenkins的6大特征: 开源的ava语言开发持续集成工具,支持持续集成,持续部署 易于安装部署配
随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。 本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:
什么是gRPC gRPC是谷歌开源的基于go语言的一个现代的开源高性能RPC框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,并提供可插拔的支持,以实现负载平衡,跟踪,健康检查和身份验证。它还适用于分布式计算的最后一英里,用于将设备,移动应用程序和浏览器连接到后端服务。
SSM框架简介 Spring Spring框架是Java应用最广的框架。它的成功来源于理念,而不是技术本身,它的理念包括loC (Inversion of Control,控制反转)和AOP (Aspect Oriented Programming,面向切面编程)。 SpringMV
前言 SpringBoot一直是开发者比较青睐的一款轻量级框架,他不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。 现在很多Java系的软件开发都是基于SpringBoot的,这就要求开发人员都要掌握基于SpringBoot的开发。
掌握Redis的重要性 Redis是互联网技术领域使用最为广泛的存储中间件,它是「 Remote Dictionary ServiceJ的首字母缩写,也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。国内外很多大型互联网公司
Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。 1、安装(EasyCode) 我这里的话是已经那装好了。 建议大家在安装一个插件,叫做Lombok。Lombok能通过
前言 阿里巴巴出了一本Java规范,在国内java开发眼里被赋予了神圣的殿堂,我不推荐你用阿里巴巴的开发手册。 目前Google Guava在实际应用中非常广泛,本篇博客将以博主对 Guava 使用的认识以及在项目中的经验来给大家分享!学习使用 Google Guava可以让你快乐编程,写出优雅
俗话说的好: 每一个程序员应该都想着如何快速提升自己(反正我是这样想的),从程序员进阶到架构师再到技术专家再到CTO 。当然这其中需要大量的知识储备,是一个不断学习的过程,话不多说下面我直接上图。 Java全栈核心知识点整理(PDF) Spring 原理 Net
简介 druid是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能,另外,druid还扩展了监控统计、防御SQL注入等功能。 使用例子-入门 需求 使用druid连接池获取连接对象,对用户数据进行简单的
导语 如今,有许许多多的插件或者编辑器都支持根据数据表自动生成数据实体类了, 比如IDEA, 各种MyBatis的代码生成工具, 等等. 本篇介绍一下如何使用IDEA的groovy脚本文件生成带JPA注解的实体类 一, 使用IDEA连接数据库 需注意: 正式版IDEA才有此功能, 社区
这篇文章主要跟大家说说程序性能优化,说到程序性能优化咱们先来谈谈代码优化~ 代码优化 代码优化其实一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾
System.out.println("1/0=" + 1/0); 大叔的灵魂拷问: 上面的代码会崩溃吗?如果不会,会输出什么呢? 上面的代码会崩溃吗?如果不会,会输出什么呢? 上面的代码会崩溃吗?如果不会,会输出什么呢? 运行直接崩溃。 ## 代码2 我
作为 Java 程序员,在技术面试时,多线程的知识多少都会被提及,这也是我面试候选人时,常聊的一个话题。 纳尼,面试中为什么常会问多线程的知识?难道面试官真的是在为难你吗? 莫急,下面一起 get 其中之奥秘。 1 使用场景:引入多线程,明确职责,效率明显提升 在实际项目开发中,经常会遇到
前言 这次来说说maven这玩意,同样还是那句话,maven对我而言只是工具,一些常规操作已经足够了,有空有兴趣才会去深入研究它。接下来会记录下自己使用maven时需要注意和理解的地方,至于那些基本概念和环境配置的问题,相信大家都懂。 仓库 maven仓库可分为本地仓库和远程仓库。
项目摘要 vhr 是一个基于 SpringBoot+Vue 技术栈开发的前后端分离项目,项目使用 SpringBoot2.1.8 来开发,集成了当前企业级开发中众多的热门技术点,如消息中间件、Redis 缓存、SpringBoot+Vue+ElementUI 技术栈等等。 技术选型 核心框
磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。 那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢? 索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 你要
前因 关于Nginx部署、配置的文章网上已经发布过很多,包括我自己也私藏了不少还发布过两篇: 后端必备 Nginx 配置 前端必备 Nginx 配置 整理出来为的就是需要的时候,复制、粘贴就能使用。 然而千奇百怪的实际开发中,你肯定需要增删Nginx配置。你就得上网搜一下,复制粘贴出
概述 性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。 预备知识 既然
不知道各位有没有遇见以下情况: 【国服第一测试】:我本地环境出了一个bug,那个【稀饭下雪】你过来看看。 或者: 【国服第一测试】:外网正式服出了一个bug,我导了数据库环境到本地,看了下确实是bug,那个【稀饭下雪】你过来看看。 再或者: 【国服第一狗策划】:内网服怎么又出b
简单说一下吧,本人疫情还没开始时面试过一次鹅厂,在MySQL、redis这方面惨败,经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于重拾面试信心,再次出征。 二战腾讯 面试职位:go后端开发工程师,接受从Java转语言。 都知道腾讯是cpp的主战场,而以cpp为背景的工程师
个人背景:专科学历,java开发3年,跳槽2次,无大厂经历,京东内推。整体感觉不错的面试经历,最后成功斩获Offer。 一、面试流程 (1)上机题(60分钟100道选择题,单选多选混合的) (2)技术面(java基础知识) (3)技术面(简历项目) (4)架构面(个人发挥) (5)lea
有人私信我说,除了要掌握的20%以外还要掌握些什么知识才能游刃有余。下面说说我接触(使用)过、的东西吧。 java以分布式应用丰富的生态闻名,在分布式系统中逃不过CAP的抉择。早早了解一些分布式一致性协议paxos、raft等。学习zookeeper的原理和使用场景(metadata、分布式
导读:在分布式系统中,远程调用是最基础也是最重要的基石。历史上,曾经先后出现过 CORBA、RMI、EJB、WebService 等技术和规范,在服务化以及微服务日趋流行的今天,更多的被广泛使用的是包括 gRPC、Finagle、以及国内的 Dubbo 为代表的轻量级框架。 由于这些框架多半与服
1 读写锁的概念 读写锁是计算机程序的并发控制的一种同步机制,用于解决读写问题,读操作可并发重入,写操作是互斥的。 读写锁有多种读写权限的优先级策略,可以设计为读优先、写优先或不指定优先级。 读优先:允许最大并发的读操作,但可能会饿死写操作;因为写操作必须在没有任何读操作的时候才能够执行。 写
作为后端开发,永远重复着「增删改查」,这些基础的操作占据了自己大部分工作时间,看到其他人成为技术大牛,而个人技术水平永远停在原地,也会很迷茫...... 需要学习的仅仅如此吗?当你工作久了是否会发现你的代码越来越复杂?文件的上传下载怎么提高效率?消息推送的实时性怎么保证?同时使用人数过多,服务器爆
SQL 查询的执行顺序是怎样的? 好像这个问题应该很好回答,毕竟自己已经写了无数个 SQL 查询了,有一些还很复杂的。还装不了这个逼了?! 但事实是,我仍然很难确切地说出它的顺序是怎样的。 言归正传,SELECT语句的完整语法如下: 1. SELECT 2. DISTI
写在前面 对于Java字符串的拼接有一条规则如下: 【推荐】循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。 说明:下例中,反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象,然后进行 append 操作,最后通
微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。 企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中,微服务被认为是未来的方向。通过将应用和服务分解成更小的、松散耦合的组件,它们可以更加容易升级和扩展,理论上是这样。 本文就为大家介绍一本微服务架构相关书籍。 本书的
关于性能调优,我先来说说的我的感受。Java 性能调优不像是学一门编程语言,无法通过直线式的思维来掌握和应用,它对于工程师的技术广度和深度都有着较高的要求。 显然,性能调优不是一件容易的事。但有没有什么方法能把这件事情做好呢?接下来跟你分享几点我的心得。 1.扎实的计算机基础 2.习惯透过
一、Mybatis快速入门 1.1 Mybatis介绍 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO
本文针对关系型数据库的一般语法。限于篇幅,本文侧重说明用法,不会展开讲解特性、原理。 一、基本概念 数据库术语 数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。 数据表(table) - 某种特定类型数据的结构化清单。 模式(schema) - 关于
Perl 之父 Larry Wall 曾经在自己的《Programming Perl》一书中提到过:“优秀程序员有3种美德: 懒惰、急躁和傲慢"。懒惰,作为程序员美德的第一个要素。 Larry Wall 所说程序员应该具备的懒惰,并不是安于现状、不思进取。而是一种为了达到同样甚至更好的目
随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的实际工作相去甚远。本书采用Jav
2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推送等优势,HTTP/2 得到了越来越多开发者的青睐,不知不觉的 HTTP 已经发展到了第三代。本文基于兴趣部落接入 HTTP/3 的实践,聊一聊 HTTP/3 的原理以及业务接入的
本文讲述基于 Redis 的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌桶算法来,访问 Redis 使用 lua 脚本。 1、概念 In computer networks, rate limiting is used to control th
Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。 很多研发人员把spring看作心目中最好的java项目,没有之一。 所以这是重点
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号