Java架构
文章平均质量分 80
普通网友
这个作者很懒,什么都没留下…
展开
-
2022年流行的Java框架有哪些?
Java开发已经成为很多互联网企业必不可少的岗位之一,对于初学Java的人来说,了解当前流行的Java框架很有必要。毕竟,任何框架都是有助于更快更好地开发软件解决方案的工具之一,下面,【Java进阶营】小编就给大家分享2022年流行的Java框架。1. SpringSpring Java框架是一种流行的Java EE框架,既强大又轻量级,Spring使Java变得简单、现代、高效、反应性和云就绪,它的依赖注入和面向方面的编程能力是众所周知的。它是一组框架,使你能够完成任何复杂的工作,从数据库工作到测试原创 2022-05-05 19:17:28 · 3250 阅读 · 0 评论 -
初学者学Java有哪些建议?学到哪种程度可以就业?
新手学Java有哪些建议?学到哪种程度可以就业?下面和【Java进阶营】小编一起来看看吧!1.一套比较好的Java学习教程真的非常重要,我相信很多人在自学Java的时候都会去网上找各种教程,但基本都是非常零散和拼凑的。而且讲的深度也不一样,所以我首先建议想学习Java的人,一定要舍得花钱买一套比较完整,并且讲的非常不错的Java学习教程,这是学习的根本。2.一套比较好的Java学习教程真的非常重要,我相信很多人在自学Java的时候都会去网上找各种教程,但基本都是非常零散和拼凑的。而且讲的深度也不一样,原创 2022-05-05 19:16:28 · 1184 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高…这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题.原创 2022-05-04 18:49:22 · 914 阅读 · 0 评论 -
Java程序员TCP 协议到底怎么学?学了到底有什么用?
TCP协议目前是事实上的网络基础。许多更高层的应用协议HTTP,FTP都基于TCP。TCP协议的学习可以说枯燥无比,尤其是学生阶段,根本不知道用在什么地方,根本不知道重要性是什么。事实上是,基于目前的网络发展和分布式发展,TCP简直就是基础中的基础。许多网络的问题,配置,入侵,防御乃至架构,都涉及到TCP的具体应用及机制。以下是我总结的TCP学习过程学习TCP协议的三次握手以及四次挥手,重点了解为什么要三次握手,为什么要四次挥手,在整个过程中状态是如何变迁的。(经典的状态图以及握手挥手图)a.为什原创 2022-05-02 19:35:33 · 212 阅读 · 0 评论 -
深入浅出Spring Boot 起步依赖和自动配置
我们知道 Spring Boot 能快速的搭建起一个应用,简化了大量的配置过程,那到底有多”简”呢?我们通过一个例子来说明,平时我们通过 Spring 和 Spring MVC 搭建一个 helloword 的 Web 应用,需要做以下工作:配置 pom.xml 添加 Spring 、 Spring MVC 框架的依赖,同时还需要考虑这* 些不同的框架的不同版本是否存在不兼容的问题。配置 Web.xml,加载 Spring、Spring MVC。配置 Spring 。配置 Spring MVC。原创 2022-05-02 00:49:09 · 591 阅读 · 0 评论 -
java23种设计模式-门面模式(外观模式)
1 介绍外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。2 角色和使用场景简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。子系统角色:实现了子系统的功能。它对客户角色和原创 2022-05-02 00:48:07 · 373 阅读 · 0 评论 -
Spring源码篇(2)—RequestMappingInfo与RequestCondition(Handler的映射)
1. 测试:1. 在两个方法上使用完全相同的@RequestMapping注解 @RequestMapping(value = "/testApi") @ResponseBody public String testAPIV1(HttpServletResponse response) { System.out.println("请求进入...V1"); return "success-V1"; } @RequestMapping(原创 2022-05-01 20:06:45 · 1071 阅读 · 0 评论 -
Java进阶篇(4)— JDK8新增的Map方法
JDK8最大的新特性便是增加反应式流编程。作为最常用的数据结构Map。它有什么变化呢?我们能不能更加方便的使用呢?在JDK8中Map的一些方法可以使用Lambda表达式了。而Lambda表达式是就是匿名内部类的简写。实际上可以理解为Map的参数可以是一段代码了。即行为参数化 。1. 什么叫做行为参数化以Map的遍历为例:匿名内部类的调用方式: @Test public void testMap() { Map<String, String>.原创 2022-05-01 20:05:10 · 2530 阅读 · 0 评论 -
Java 程序员必须学好的 8 道数据结构面试题,你会几道?
今天带大家看下面试中你可能会遇到的8道数据结构题—↓↓↓瑞士计算机科学家Niklaus Wirth在1976年写了一本书,名为《算法+数据结构=编程》。40多年后,这个等式仍被奉为真理。这就是为什么在面试过程中,需要考察软件工程师对数据结构的理解。几乎所有的问题都需要面试者对数据结构有深刻的理解。无论你是初入职场的新兵(刚从大学或者编程培训班毕业),还是拥有几十年经验的职场老鸟。有些面试题会明确提及某种数据结构,例如,“给定一个二叉树。”而另一些则隐含在面试题中,例如,“我们希望记录每个作者相关的书原创 2022-04-30 17:07:52 · 164 阅读 · 0 评论 -
Java同步关键字synchronized详解
前言多线程编程可以极大地提高了效率,但也会带来线程安全问题。比如说多个线程向数据库插入数据,就可能会导致数据库中数据重复。什么时候会引发线程安全问题首先我需要了解什么是临界资源?有这样一种资源,在某一时刻只能被一个线程所使用,这种资源可以是各种类型的的资源:一个变量、一个对象、一个文件、一个数据库表等。举个简单的例子:现在有两个线程分别从网络上读取数据,然后插入一张数据库表中,要求不能插入重复的数据。那么必然在插入数据的过程中存在两个操作:1)检查数据库中是否存在该条数据;2)如果存在,则不原创 2022-04-30 17:06:18 · 479 阅读 · 0 评论 -
Java架构师提升学习笔记:mysql高性能
Mysql架构与历史总结1.mysql的逻辑结构a.第一层,基于网络的客户端/服务器的工具或者服务都有类似的结构,比如连接处理,授权认证,安全等b。第二层:包括查询解析,分析,优化,缓存以及所有内置函数,存储过程,触发器,视图等c。存储引擎,负责mysql中数据的存储和提取,1.1 连接管理与安全性每个连接拥有一个线程,服务器会负责缓存线程,因此不需要为每一个新建的连接创建或者销毁线程。当连接时,会进行认证,基于用户名,原始主机信息和密码,一旦连接成功,会继续认证该客户端是否具有执行某个特定查原创 2022-04-30 17:05:09 · 138 阅读 · 0 评论 -
Java技术专题「OpenJDK专题」想不想编译属于你自己的JDK呢?(Windows10环境)
Win10下编译OpenJDK8编译环境Windows10专业版64位;编译前准备Tip: 以下软件的安装和解压目录尽量不要包含中文或空格,不然可能会出现问题安装 Visual Studio 2010 Professional在windows下编译JDK需要使用Visual Studio 2010 Professional最好下载英文版的IDE,不然可能会出现问题,下载完成后只用勾选安装C++部分就行准备OpenJDK8首先下载OpenJDK8,, 下载完成后解压原创 2022-04-25 17:48:50 · 662 阅读 · 0 评论 -
一文学会JVM性能优化
实战性能优化重新认知JVM之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图。执行引擎:用于执行JVM字节码指令主要由两种实现方式:(1)将输入的字节码指令在加载时或执行时翻译成另外一种虚拟机指令;(2)将输入的字节码指令在加载时或执行时翻译成宿主主机本地CPU的指令集。这两种方式对应着字节码的解释执行和即时编译。9.2 堆内存溢出9.2.1 代码记得设置参数比如-Xmx20M -Xms20M9.2原创 2022-04-21 18:17:04 · 194 阅读 · 1 评论 -
面试求职中你需要了解的Java面向对象
Java面向对象的特征: 抽象、封装、继承、多态.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面:数据抽象和过程抽象.封装:封装就是对属性和方法的载体类,只能通过其提供的接口(方法)来访问,而把实现细节隐藏起来.也就是说,具体实现对程序员来说是透明的,封装的好处在于对类内部的改变,不会影响到其他代码.封装的做法:1.私有属性(private修饰符修饰属性)。2.提供pu原创 2022-04-21 18:09:11 · 100 阅读 · 0 评论 -
爱上Java和JVM的10大理由
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发.引用多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出现,也就意味着不同的线程能被不同的CPU核得到真正意义的并行执行。那么,要开始Java并发之路,就要开始从j原创 2022-04-21 18:10:31 · 103 阅读 · 0 评论 -
[高并发]Java高并发编程系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发.引用多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出现,也就意味着不同的线程能被不同的CPU核得到真正意义的并行执行。那么,要开始Java并发之路,就要开始从j原创 2022-04-21 18:07:51 · 116 阅读 · 0 评论 -
java大厂面试题过程是什么?java面试全过程
很多学完java之后,都会出来找java相关工作,可是java是技术岗,要求还是比较严格的,如果没有相关的技能,恐怕很难过面试这关,那么下面我们就给大家分享一些关于java面试全过程,让大家提前熟悉一下。一、简历简历里面需要包含的内容应该是学历,自己的技术栈,然后自己做过的一些项目。简历不需要太长,两页纸即可。里面应该重点写你使用过的一些框架,自己做的一些项目,以及自己的收获,简练第一。一般面试官不会有很多的耐心,看你的项目详细描述,所以尽量简洁明了即可。二、简历投递投递的方式有几种吧,相信大家也都原创 2022-04-21 18:00:39 · 682 阅读 · 0 评论 -
redis常见面试题有哪些?redis集群面试题及答案整理
下面要给大家带来的是一整套的redis集群面试题,包含了具体的面试题目和答案,想要来看这方面面试题的小伙伴可以来了解一下。一、面试题及答案1、Redis有哪些适合的场景?(1)Session共享(单点登录);(2)页面缓存;(3)队列;(4)排行榜/计数器;(5)发布/订阅;2、Redis主要功能有哪些?(1)LUA脚本:在事务的基础上,假如,需要在服务端一次性的执行更复杂的操作,那么,这个时候lua就可以上场了。(2)事务:在大多数的情况之下,我们需要一次执行不止一个的命令,除此之外,还要其同原创 2022-04-19 18:05:27 · 2733 阅读 · 0 评论 -
Java面试问题汇总(Redis)
1.Redis 为什么是单线程? 为什么单线程还能这么快?单线程能够避免线程切换和竞态产生的消耗,而且单线程可以简化数据结构和算法的实现至于单线程还快,是因为Redis是基于内存的数据库,内存响应速度是很快的,并且采用epoll作为I/O多路复用技术,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多时间epoll是为了解决Linux内核处理大量文件描述符提出的方案,属于Linux下多路I/O复用接口中select/poll的增强,经常用于Linu原创 2022-04-19 18:04:07 · 879 阅读 · 0 评论 -
java开发工程师架构师需要了解的知识
1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验. JVM内存分配、JVM垃圾回收; 类装载机制; 性能优化: 反射机制; 多线程; 网络编程;常用数据结构和相关算法:2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设原创 2022-04-18 17:19:08 · 178 阅读 · 0 评论 -
阿里P8架构师详解Java性能调优策略
一、性能[测试]Ⅰ.测试方法微基准性能测试可以精准定位到某个模块或者某个方法的[性能问题],例如对比一个方法使用[同步]实现和非同步实现的性能差异宏基准性能测试宏基准性能测试是一个综合测试,需要考虑到[测试环境]、测试场景和测试目标测试环境:模拟线上的真实环境测试场景:在测试某个接口时,是否有其他业务的接口也在平行运行,进而造成干扰测试目标可以通过吞吐量和响应[时间]来衡量系统是否达标,如果不达标,就需要进行优化如果达标,就继续加大测试的[并发]数,探底接口原创 2022-04-18 17:18:06 · 316 阅读 · 0 评论 -
2022 最新一线大厂 Java 高级架构师面试题总结~
总共包含32份面试题,下面就给大家一一做介绍7道消息队列ActiveMQ面试题1.什么是 ActiveMQ?activeMQ 是一种开源的,实现了 JMS1.1 规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信;2. ActiveMQ 服务器宕机怎么办?丢消息怎么办?持久化消息非常慢。消息的不均匀消费。死信队列。ActiveMQ 中的消息重发时间间隔和重发次数吗?Redis + Memcached 经典面试题1 Redis 相比 me原创 2022-04-16 20:14:42 · 452 阅读 · 0 评论 -
系统架构设计师面试java架构师 面试经验分享
一、[java架构师面试经验(广州) - 阿里巴巴]面试过程:面试问的技术底层是实现原理,高并发处理经验,工作中遇到的困难,以及计算机基础,网络基础数据结构,操作系统汇编语言计算机指令,消息中间件,数据库,redis,Linux操作系统内核,Jvm调优经验,千万级数据处理,Sql优化经验,微服务架构等等。面试官问的面试题:面试问的技术底层是实现原理,高并发处理经验,工作中遇到的困难,以及计算机基础,网络基础数据结构,操作系统汇编语言计算机指令,消息中间件,数据库,redis,Linux操作系统内核,原创 2022-04-16 20:12:02 · 2628 阅读 · 0 评论 -
Java Web架构知识整理——记一次阿里面试经历
惭愧,从一次电面说起。我个人在某国企做一名软件设计师,国企大家都懂的,待遇一般而且没啥意思,做的方向基本都是操作系统、驱动和工具软件的开发,语言基本都是C/C++。最近也想跳槽,刚好有幸得到了一次阿里的面试机会,于是就试了试。首先是电话面试,当时正在上班,人多口杂,好不容易找了个没人的地方开始面试。面试的方向是Java Web,面试官很nice,跟朋友一样,一开始问了些比较基础的东西,比如hashmap/hashtable的区别和优缺点,我答得还行,而且对于原理的东西还算讲的比较透彻。Java Web的原创 2022-04-15 18:31:35 · 398 阅读 · 1 评论 -
java面试题-spring篇
这次是关于spring的面试题,和上次一样依旧挑了几个具有代表性的。一. 谈谈你对 Spring 的理解Spring 是一个开源框架,为简化企业级应用开发而生。Spring 可以是使简单的 JavaBean 实现以前只有 EJB 才能实现的功能。Spring 是一个 IOC 和 AOP 容器框架。Spring 容器的主要核心是:控制反转(IOC),传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。原创 2022-04-15 18:29:50 · 166 阅读 · 0 评论 -
【Java】京东面试:说说MySQL的架构体系
关注“【Java进阶营】”回复“面试”获取全套面试资料字数:3620,阅读耗时:4分35秒最近有一位兄弟在面试中被问到:「MySQL的架构体系是什么」。虽然他搞java开发好几年了,也一直使用的是MySQL数据库,但是面对这个问题依然是一脸懵逼,还以为面试官要问索引、慢查询、性能优化之类的(因为这些都是网上找点面试题背过了)。但这位面试官不按套路出牌,这位兄弟当场就是脸红耳赤的,心想nnd居然会这么问。其实面试中面试官的问题有千千万,有的问题确实背背面试题就能应对,但不是所有的面试题咱们都能背下原创 2022-04-15 18:27:58 · 158 阅读 · 0 评论 -
Java程序员如何提升技能
Java语言是大学计算机专业中常见的一门编程专业课,自己作为一名程序员,工作还在继续使用,发现大学中学的过于浅显,越来越觉得技能不够用,还需要继续深入学习。Java基本上是目前应用最广,能力最强大的编程语言。如果精通Java,学习其它编程语言基本上都非常轻松。可是,反问自己,用Java做过多少项目,完成过什么应用系统,解决过什么难题,能独立开发APP应用么?好像还是没有多少底气,感觉浪费这强大的编程语言了。Java编程语言真的非常强大,强大到它基本可以出色完成任何任务,所以我想好好的再次深入学习一下Ja原创 2022-02-28 17:00:56 · 8377 阅读 · 0 评论 -
初级java程序员怎样快速提升自己
学习先进的搜索技术、手段和及策略你完成工作的能力通常取决于你的检索能力。帮助别人教别人始终是学习一切东西的好方法之一。有耐心,常练习深入学习一点先进理念成为一名中级程序员,很大一部分是要在代码里面体现出一些所擅长的概念。找到真正令你着迷的东西。也许是图像处理,也许是数据库设计,等等。即便你是一个入门级的程序员,也要尝试一下成为某一自己所关注领域的专家。学习你的领域里面的基本理论写出“Hello World”,跟理解那些字是如何显示到屏幕上的是两码事。通过学习支撑你所从事的工作的“基础/底层原创 2022-02-28 16:59:02 · 1332 阅读 · 0 评论 -
Java二十三种设计模式 之代理(proxy)
Java二十三种设计模式 之代理(proxy)今天我们学习一下静态代理和动态代理我们来看代码(写一个坦克运行了多少时间):第一种方法:public calss Tank implements Movable{public void move(){//记录开始的时间 long start = System.currentTimeMillis(); System.out.println(“Tank moving claclacla…”);try{ //随机睡眠10秒钟,模拟它开了几秒钟 Thre原创 2022-02-26 18:38:11 · 186 阅读 · 0 评论 -
Java 进阶之路:异常处理的内在原理及优雅的处理方式
永远不要期待程序在完全理想的状态下运行,异常往往不期而遇,如果没有完善的异常处理机制,后果可能是灾难性的。对于 Java 工程师而言,合理地处理异常是一种基本而重要的能力,然而,在近来的面试中,笔者发现很多应聘者对异常处理的内在原理几无了解,现场手写的异常处理代码也极为“原始”。鉴于此,笔者将通过本场 Chat 为读者呈现 Java 异常处理的内在原理、处理原则及优雅的处理方式。主要内容如下:Java 异常的层次结构和处理机制Java 异常表与异常处理的内在原理.Java 异常处理的基本原则优雅原创 2022-02-26 18:30:22 · 7837 阅读 · 0 评论 -
spring boot入门(九) springboot的过滤器filter。最完整、简单易懂、详细的spring boot教程。
关于过滤器和拦截器的区别,已经spring boot入门(七)中说明。下面举个过滤器的应用场景,比如用户信息页只有再用户登录后才可以进入,没有登录的用户是无法进入的,此时便可以采用过滤器来讲没有登录的用户"过滤"掉。1.建立filter包,在此包下建立UrlFilter类,此例我们模拟判断用户请求地址是否有误:UrlFilter代码如下:@WebFilter(filterName = “test”, urlPatterns = “/success/*”)public class UrlFilter i原创 2022-02-26 18:23:51 · 879 阅读 · 0 评论 -
Java——枚举:优雅而干净的enum
Java编程思想》中有这么一句话:“有时恰恰因为它,你才能够‘优雅而干净’地解决问题”——这句话说的是谁呢?就是本篇的主角——枚举(Enum)——大家鼓掌了。在之前很长时间一段时间里,我都不怎么用枚举,因为总感觉它没什么用处——这其实就是“自我认知”的短见。当一个人一直蹲在自己的深井里而不敢跳出来的话,那他真的只能看到井口那么大点的天空。随着时间的推移,我做的项目越来越多,和枚举见面的机会也越来越多,于是我就渐渐地对它越来越有兴趣,研究得多了,才发现原来枚举如此的优秀。一、枚举的常规用法一个精简的枚原创 2022-02-26 18:22:38 · 1117 阅读 · 0 评论 -
Java中注解学习系列教程-2
简介 在上一篇文章中,我们讲解了:Java中注解的定义、JDK中内置注解、第三方注解。本文是注解系列教程中的第二篇。来看看今天主要内容:1:注解的分类2:元注解说明3:自定义注解声明一:注解的分类注解根据运行机制、来源、功能来分:1.1:按照运行机制来分,即时注解存在于程序的哪个阶段源码注解(source):在源码中存在的。如:lombak的@data注解:编译注解(class):编译期。既是在源码和c在上一篇文章中,我们讲解了:Java中注解的定义、JDK中内置注解、第三方注解。本文是注解系列教程中的原创 2022-02-24 18:59:19 · 132 阅读 · 0 评论 -
Java中注解学习系列教程-1
前言:我们为什么要学习注解?注解是我们的编程更简洁明了。spring boot的流行也带动了注解。spring boot中就使用了大量的注解来减少配置。我们在使用spring boot开发时候,感觉很简洁。这个就是注解的功劳。注解开发也是一种趋势。所以,我们还是很有必要学学注解的。本文主要讲解前三个:注解定义、JDK内置注解、第三方注解。一:注解定义来看看百科上怎么说的:JDK 1.5之后出现的,元数据……。太难理解了。一句话:注解可以理解为一种标识,是给代码把标签的。标签里面可以有其他属转载 2022-02-24 18:54:34 · 194 阅读 · 0 评论