编程
文章平均质量分 89
代码造就世界
这个作者很懒,什么都没留下…
展开
-
架构师培训:aop是什么
那些研究过Spring的人都知道Spring的核心功能是Ioc和Aop。 Ioc的主要功能是应用程序对象之间的解耦,而Aop可以实现跨领域代码(例如权限,日志等)以将它们绑定到特定对象之间。对于用户调用许多接口的简单易懂的小板栗,我们需要进行权限认证,以确定用户是否具有调用该接口的权限。 如果每个接口必须自己进行类似的处理,那会有些麻烦。 仅安装x不够,因此Aop可以派上用场。 将这些处理代码放入片段中,定义片段,连接点和通知,然后就可以运行了。想要了解Aop,就要先理解以下几个术语,如PointC转载 2020-11-29 13:29:23 · 195 阅读 · 0 评论 -
java高级培训:springAOP的基础原理和优点
我们知道在OOP中模块化的关键单元是类,类封装了一类对象的行为和状态,当多个类有共同的属性和行为时候我们把这些共同的东西封装为一个基类,然后多个类可以通过继承基类的方式来复用这些共同的东西,如果子类需要定制基类行为则可以使用多态。 OOP中使用类来提供封装,继承,多态三个特性。 例如,当我们需要向多个不相关类的某些现有行为添加通用的非业务逻辑时,我们需要计算一些业务方法的执行时间。过去,我们需要计算耗时的行为。编写计算耗时的代码。在OOP中,分散在多个不涉及业务的类中的代码称为跨领域代码。这种方法转载 2020-11-20 14:03:30 · 317 阅读 · 0 评论 -
java高级培训:在java高级编程中为什么会用到aop
在传统的业务处理代码中,比如你要操作数据库,会进行事务的处理或者打印一些日志。虽然通过OOP也可以实现,比如通过继承或组合的方式来达到代码的复用,但是如果实现某些功能,比如日志记录,相同的代码会分散到各个方法中,如果后面要想关闭某个功能或进行修改就必须要修改所有的方法,非常的不方便。 那么为了解决为了解决这个问题,AOP的思想随之产生。它采取了横向抽取机制。将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。这种采用横向提取机制的方式。是采用传统的转载 2020-11-19 13:46:51 · 177 阅读 · 0 评论 -
java高级培训-java语言的基本介绍
每个人对Java的理解是不同的,如何才能更好的理解Java呢?如果想要和没有接触过Java的人解释Java是非常困难的。Java是一门编程语言,在不断的发展中,已经超出了简单的编程语言,Java主要包括虚拟机环境,类和支持软件等,并且能够很好的使用在各个操作系统中。Java技术主要有JavaSE、JavaEE和JavaME等。 Java的应用领域是非常广的,并且使用的方法也是不同,如果你是一名Java开发人员,那么你需要更好的了解自己是在那个领域里面,这样才能在软件开发的学习中得到更好的发展。 J原创 2020-11-03 13:39:50 · 441 阅读 · 0 评论 -
(文末福利)Java虚拟机堆和栈详细解析,以后面试再也不怕问JVM了!
堆Java堆是和Java应用程序关系最密切的内存空间,几乎所有的对象都放在其中,并且Java堆完全是自动化管理,通过垃圾收集机制,垃圾对象会自动清理,不需自己去释放。根据垃圾回收机制的不同,Java堆有可能拥有不同的结构,最为常见的就是将整个Java堆分为新生代(Young Gen)和老年代(Tenured Gen)。其中新生代存放新生的对象或者年龄不大的对象,老年代则存放老年对象。新生代分为edn区,s0区,s1区,s0和s1也被称为from和to区域,他们是两块大小相等,并且可以互相转换的空原创 2020-06-24 15:40:15 · 195 阅读 · 0 评论 -
2020BAJT等九大一线大厂的薪资和职级对比
2020BAJT等九大一线大厂的薪资和职级对比互联网大厂新入职员工各职级薪资对应表(技术线)~上面的表格不排除有很极端的收入情况,但至少能囊括一部分同职级的收入。这个表是“技术线”新入职员工的职级和薪资情况,非技术线(如产品、运营、销售等)以及老员工的情况会和图中的范围有所出入。以校招生为例,产品线收入大概是技术线的80%,运营线收入大约是技术线的65%。以 BAT 为代表的互联网大厂,一直是求职者眼中的香饽饽,“大厂经历”在国内就业环境中无异于一块金子招牌。对于企业和HR来说,大厂的职级规则也是转载 2020-06-22 16:50:45 · 7083 阅读 · 1 评论 -
2020年1-6月份Java面试题总结,20多类1100道面试题含答案解析
很多程序员都会担心35岁的职业危机,而数据也显示,40岁以上的程序员几乎不存在,大都转了管理岗,余下的只能被迫离职或者转行。然而,太久待在舒适区,可能连小公司的面试,都很难通过了。程序员是最需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了。程序员工作都很忙,所以最好能在空闲的时候看看大厂的面试题,这些面试题的作用可能会超出你的想象:学习前辈的面试方法和经验检测自己的技术能力,培养自己的职业危机感学习更多的技术,锻炼对技术的敏锐度了解大厂面试的重难点,为自己的工作提供相应的经验了解原创 2020-06-12 15:24:33 · 1273 阅读 · 0 评论 -
最新Redis高频面试系列,来看看这些你都会了吗?
前言现在大家的工作生活基本已经是回归正轨了,最近也是迎来了跳槽面试季,有些人已经拿到了一两个offer了。这段时间收集了阿里、腾讯、百度、京东、美团、字节跳动等公司的Java面试题,总结了Redis系列的高频面试题:1、Redis持久化机制2、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题3、热点数据和冷数据是什么4、Memcache与Redis的区别都有哪些?...转载 2020-04-23 20:06:44 · 201 阅读 · 0 评论 -
面试必备之Mysql索引底层原理分析
面试问:数据库中最常见的慢查询优化方式是什么?答:加索引。问:为什么加索引能优化慢查询?答1:…不知道答2:因为索引其实就是一种优化查询的数据结构,比如Mysql中的索引是用B+树实现的,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,所以能优化查询。问:你知道哪些数据结构可以提高查询速度?(听到这个问题就感觉此处有坑…)答:哈希表、完全平衡二叉树、B树、B+树...原创 2019-12-17 19:52:25 · 314 阅读 · 0 评论 -
手写spring框架,帮你彻底了解spring的工作原理机制
在我们的日常工作中,经常会用到Spring、Spring Boot、Spring Cloud、Struts、Mybatis、Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越来越轻松,我们用 Spring Boot 分分钟可以新建一个Web项目。今天通过手写Spring框架,帮大家深入了解一下Spring的工作机制,文中涉及的代码只用来帮助大家理解Spring,不会在线上...原创 2019-12-15 17:05:41 · 337 阅读 · 1 评论 -
2019阿里Java面试题:并发编程+JVM+数据库+缓存+分布式(含答案)!
前言2019年还有不到一个月的时间就结束了,这一年,你收获了多少?前段时间一直有人问我,有没有今年一些大厂Java面试题总结?最新抽时间整理了一些,分享给大家,大家一起共享学习!并发编程:什么是多线程并发和并行?什么是线程安全问题?什么是共享变量的内存可见性问题?什么是Java中原子性操作?什么是Java中的CAS操作,AtomicLong实现原理?什么是Java指令...原创 2019-12-13 15:34:11 · 993 阅读 · 0 评论 -
2019年JVM面试都问了什么?快看看这22道面试题!(附答案解析)
一. Java 类加载过程?Java 类加载需要经历一下 7 个过程:加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情:• 通过一个类的全限定名获取该类的二进制流。• 将该二进制流中的静态存储结构转化为方法去运行时数据结构。• 在内存中生成该类的 Class 对象,作为该类的数据访问入口。验证验证的目的是为了确保 Class 文件的字节流中的信息不回危害到虚拟机....原创 2019-12-12 13:57:52 · 156 阅读 · 0 评论 -
spring底层原理解析
一、概念1、SpringSpring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。...原创 2019-12-11 13:39:44 · 1021 阅读 · 0 评论 -
以Java的视角来聊聊BIO、NIO与AIO的区别!
一、BIO的理解首先我们通过通信模型图来熟悉下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端的连接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。这就是典型的一请求一应答通信模型。这个是在多线程情况下执行的。当在单线程环境下时,在while循环中服务端会调用acce...原创 2018-11-05 13:56:24 · 162 阅读 · 0 评论 -
Docker生成镜像的两种方式
有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像两种方式:更新镜像:使用docker commit命令构建镜像:使用docker build命令,需要创建Dockerfile文件更新镜像先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用docker commit命令提交为一个新的镜像(以tomcat为例)。1.根据基础镜像,创建...原创 2019-04-19 20:43:15 · 1149 阅读 · 0 评论 -
Java基础——自定义的jdbc连接工具类JDBCUtils
(全文650字,建议阅读时长8分钟)轻松一刻~“玩算法的码农,打拼靠蓝条,像是法师。数学就等于蓝条最大值,数学差,魔法值不高,很快就到瓶颈了。外语影响回蓝速度。经验和智力加急速和穿透的。不玩算法的码农,像是战士,打拼靠血条,体质加生命,精神加生命回复,经验和敏捷加急速和破甲。”一创建项目二引入myql的驱动包三代码注册驱动Class.forName("com.mysql.jd...原创 2019-05-26 15:43:13 · 298 阅读 · 0 评论 -
MySQL索引原理及慢查询优化,了解一下?
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容...原创 2019-05-27 15:56:04 · 142 阅读 · 0 评论 -
刚入职的程序员小白,如何跟进公司项目?答:Python语言+源代码学习
有一个小伙伴就问道*:“我刚刚加入一个新公司,项目处在后期,没有什么代码可以敲,现在整天就是在熟悉业务测试业务,感觉很迷茫,该怎么办?”*这一点和我在第一家公司的一段经历特别像,因为这家公司已经成立多年,代码库的代码很稳定。我刚加入公司之时,公司里没有太多的新功能要去开发,事情较少。所以我当时做了一件让...原创 2019-06-03 21:50:27 · 1368 阅读 · 1 评论 -
MyBatis如何理解事物控制呢?
MyBatis如何理解事物控制呢?原创: 阿琰 校对:李二什么是事务一、概念事务指的是逻辑上的一组操作,这一组操作要不同时成功,要不同时失败,只要这一组操作里有一个失败,意味着这一组都失败 —同生共死二、事务的管理(MySQL数据库事务默认是自动提交,Oracle数据库事务默认是不自动提交)(一)dos命令行管理事务1.手动开启事务start tansaction --开...原创 2019-06-10 16:54:46 · 216 阅读 · 0 评论 -
干货!从上帝视角来看SpringMVC
SpringMVC核心流程图简单总结首先请求进入DispatcherServlet 由DispatcherServlet 从HandlerMappings中提取对应的Handler此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:HandlerAdapter拿到对应HandlerAdapter时,这时候开始调用对应的Handler处理业务逻辑了(这时候实际上已经执行完了我...原创 2019-07-29 19:46:00 · 211 阅读 · 0 评论 -
Java架构-最新最全的Spring面试题系列
1、什么是 Spring 框架?Spring 框架有哪些主要模块?Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring 框架,不必担心 Spring 是如何在后台...原创 2019-07-26 21:03:30 · 188 阅读 · 0 评论 -
JAVA架构-SpringMVC实现原理及解析
1、Spring mvc介绍SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。2、SpringMVC使用需要在web.xml中配置Dispatche...原创 2018-10-28 14:06:03 · 227 阅读 · 0 评论