spring概述: spring是最受欢迎的企业级java应用程序开发框架,数以百万的来及世界各地的开发人员使用spring框架来创建性能好,易于测试,可重构的代码。...spring框架的核心特性是可以用于开发任何java应用程序,但是在java EE平台上构建web应用程序是需要扩展的。...--上述内容摘记于w3cSchool 上面讲述spring的基本介绍之后,就来谈谈学习spring这个框架的一点理解吧,我现在写这篇内容的时间节点是五月3号,对,这是五一期间写作的第二篇文章,但是现在写的文章要等到...10月1后进行发出来了,我不想每写一篇文章就发出来了,先让这样的文章沉淀一下,这样就不会导致自己为了写文章而写文章了。...,我理解的IOC和AOP的概念也仅仅停留在控制翻转,面向切面编程,但是java毕竟是面向对象编程,面向切面编程我不是很理解,然后就放在那里了,随着时间的流逝,也就是在实际的工作中用的越来越多,自己也逐渐明白了
这篇文章主要包含但不限于java并发编程总结路线图的分享,这篇文章也是对以往自己知识点的回顾,分享的目的不在于炫耀什么,也没什么可值得炫耀的事情。...为什么起这么一个标题呢,其实是自我理解并发编程技术过程中陈述的一种方式,利用闲暇时间整理了自己已完成的并发编程路线,主要是为了便于日后自己的回顾和分享给需要的人,高级语言的特点就是封装,封装再封装,便于使用者快速使用...0x08,研发工具 原本没有这一分享的,但是自己在画图整理的时候画了这部分,单独输出一篇文章说明在使用的工具都有哪些,有点不符合自己输出文章的初衷。...这里就看下关于java后端开发需要哪些工具的安装吧。...0x09,java进阶基础版路线图 java进阶基础版路线图的内容也在以往的文章中输出了,这里自己就简单画了一下基础版的路线图,后面这张图也会随着自己文章的输出进行扩展的,一般都是自己把自己想写的内容输出了
从捣鼓软件开发给别人做网站,到尝试建设完整的系统工程,再到去学习经营一个公司,创业路也走了整整十年,一路过来跌跌撞撞,有开心难过,有成功失败,还发生各种有趣和惊叹,更多的也有五味杂陈。...,父母是普通的小商业经营者,在相对比例上,对我的支持已经做到了极致,这还是在不认可我的创业路的情况下。...,隐约觉得这就是我走创业路的启蒙之一。...2.13.创业与家庭,创业与女人 这么多年的创业路中,对上没有处理好与父母的交流沟通,对下也没有构建出和谐的下一代环境,女儿至今处于被我周期性关注,长期性放养的状态,这是我的创业和性格带来的家庭处理上的遗憾...,我选择了用技术卖龙虾这条路。
作为一直受到广大OpenStack用户诟病的网络项目,Neutron一直在“摸索着”自身的定位。对于用户而言,稳定的商业SDN产品对于网络的管理似乎更能满足他们的需求。...这表明虽然OpenStack NV组件的健壮性已经有了明显的提高,Neutron要获得商业NV平台的肯定,仍然有很长的路要走。...VMware NSX负责产品管理的副总裁Milin Desai表示Arkin Net安全角度的价值是软件定义数据中心环境中运行的使用NSX元数据生成的VMware的可视化漏洞。...同时,IT公司最好基于他们需要支持的的greenfield和brownfield应用以及他们整体环境的复杂性进行选择,毫无疑问,响应greenfield应用需求的压力更大,但是不可避免的是,这些新的应用程序要跟遗留的应用程序对接...,真正的挑战是找到异构的网络虚拟化方式来平衡这两者。
2012年的时候,我参与了一个项目,我觉得那个项目是我职业生涯的一个转折点。经过那个时间节点后,我在能力,视野,心理上都获得了巨大的成长,也为自己后面的发展奠定了基础。...简直就是精神和体力的双重煎熬。 我记得有一个周六,我同学从深圳过来,吃完饭后,准备去唱K。结果手机突然收到个报警,我只能杀回公司处理 。那时候感觉这简直就是一份非人的工作,有好几次想辞职不干了。...能力,视野,心理素质 完成那一次艰难的任务后,我并没有马上被升职,被加薪。我还是一如往常地做着个小兵,写着我的代码。 但我明显地感觉到,我的技术深度,技术视野和心理素质有了一个质的变化。...我在跟其他业务同事探讨技术方案的时候,我有时候会惊讶,“这个不是很简单吗?”,“这个不是常识吗?”,有一段时候,我有点困惑,怎么他们连这个也不懂。...我相信这点在其他的技术领域也是相同的。 在心里层面,我觉得那次的成长非常巨大,好像经历那次之后,自己心理上再也没有遇到更加难熬的时候。
于是乎,我们马上就会想到链路追踪。 链路追踪:通过在程序内打点记录日志的方式,记录每次请求的调用链路信息。特点是数据精准、细致,适合查看某一次请求的调用链路,一般用于查看某些响应较慢的接口瓶颈。...2、对收集到的数据进行分析、实时处理。 3、数据链路的可视化展示。 通过分布式追踪系统能很好地定位如下请求的每条具体请求链路,从而轻易地实现请求链路追踪: ?...然后在Dependencies的选项中能看到调用链路的图,当然,因为测试的原因,并没有建立很复杂的调用链路。 ?...从这一块我们能够感知到,springcloud对zipkin的集成非常友好,不用另外启动什么jar包,可以直接集成在springcloud的环境中,这也是我选择用zipkin作为展示的原因。...类别 Zipkin SkyWalking Pinpoint CAT 实现方式 拦截请求,发送(HTTP,mq)数据至zipkin服务 java探针,字节码增强 java探针,字节码增强 代码埋点(拦截器
cn.hlq.androidcustomview.activities; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import java.util.ArrayList...; import java.util.List; import cn.hlq.androidcustomview.R; import cn.hlq.customview.PieChartView; import...当我们第一次绘制扇形的时候,Path中记录了当前的属性,也就是颜色值,在绘制下一个扇形的时候,由于Path中依然缓存或者说是记录第一次属性值时,造成的后果就是我们看到的一个颜色的大圆形。...绘制直线的要求: 直线的反向延长线经过圆心; 直线与圆的焦点一定在对应扇形终点处; 绘制直线的颜色应保持一致 绘制直线的俩个要素: 直线的起点: lineStartAngle=startAngle...首先实现之前我们要明白,在我们的自定义View中,也就是我们绘制的饼图中,我点击了某一块,饼图是怎么知道我点击的哪儿块呢?
这篇也是我分享里为数不多“进阶”与“成长经历”的文章之一。...image.png 当代著名哲学家陈嘉映先生,他曾在一本书里说过这样一句话,放到这里再合适不过了:成长无时无刻不是在克服某些与生俱来的感觉和欲望 回头看,一路走来,我从最初的摸索、探索、琢磨,到看到细微变化...分享中,我多次提起知识体系构建的重要性,是因为这对咱们的思维蜕变起到非常重要的催化作用。想要进阶或成为某个领域的专家,除了自身领域技能要硬之外,思维蜕变才是重中之重。...十年磨一剑 image.png 在上文,我从"写博"、"面试"、"构建知识体系"出发,与大家分享如何提高核心竞争力,希望可以作为大家日后破局与进阶的有利的"武器"。...或许在目前,我们的代码暂时无法改变世界,但是拥有一个良好的习惯,拥有一颗坚持的心,那必定能改变自己的现状! 路漫其修远兮,吾将上下而求索。漫漫长路,我,与你同行,让我们沉淀过去,展望未来。
框架我都用过。...接下来的示例程序很简单,我写这篇示例程序主要是为了回顾一下几年前刚刚学习jdbc时的用法,不涉及什么概念的讲解,想回忆一下的可以看下,对我而言写一篇文章不再是去分享一个技术点,我想这就是自己这段时间的改变...或许这两者是相辅相成的,以前我会学习各种技术,包括各种用不到的技术我都会学,这也导致了我的精神状态不是很好,记得昨天吃饭时有点疲惫时,赶紧放下了手机,看看视频才觉得,哦,没有必要全身心去学习额外的技术,...我之前是会用非关系型数据库进行业务的编码的,于此同时我学会了基于mongodb去做业务的开发,但是后面随着业务开发,mongodb用于存储数据却不见了身影,后面mongodb做为了上传文件的存储,自己写了一篇...,这也是自己为什么会把这篇文章当做java进阶文章的原因了。
大学期间我就已经定了方向,专攻Java,所以或多或少还是有些积累,毕设的时候用Java写了个程序,给磁盘建索引,用的Lucene,顺利过了毕设。没想到的是,我竟然因此和搜索结缘,一直持续到今天。...我和B君大学学的都是Java,于是采用了SSH2开发。从头开始垒代码。还是那句话,如果只是做个类似博客平台的站点自然是不难,但我们做的是原创音乐分享网站。...Web/ORM/ODM 一站式开发框架 因为我之前做过一段时间的Ruby程序员,一对比,我发现,Java的Web框架都太不好用了,Java的ORM框架也不好用,Java 的MongoDB Client...不过实习生占了很大一部分,服务器方面,新采购的单台都至少24+核,32+G 内存。 13年到14年是一段非常辛苦的路。...现在的话,基本是Scala,Java混合编程。Scala 确实能够有效的提高编程效率,而且可以和Java无缝操作。在公司内部系统中,基本上都是混合着用的。
List 概述 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素 2....方法介绍 方法名 描述 void add(int index,E element) 在此集合中的指定位置插入指定的元素 E remove(int index) 删除指定索引处的元素,返回被删除的元素 E...set(int index,E element) 修改指定索引处的元素,返回被修改的元素 E get(int index) 返回指定索引处的元素 2....示例代码 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List...示例代码 import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class
异常 1.1 异常的概述 异常就是程序出现了不正常的情况 1.2 异常的体系结构 Error:错误,严重问题,不需要处理 Exception:异常类,它表示程序本身可以处理的问题 RuntimeException...JVM默认处理异常的方式 如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤: 把异常的名称,错误原因及异常出现的位置等信息输出在了控制台 程序停止执行...无需显示处理,也可以和编译时异常一样处理 6. throws方式处理异常 6.1 定义格式 public void 方法() throws 异常类名 { } 6.2 示例代码 import java.text.ParseException...; import java.text.SimpleDateFormat; import java.util.Date; public class Demo { public static void...7.1 throw 用在方法体内,跟的是异常对象名 表示抛出异常,由方法体内的语句处理 执行 throw 一定抛出了某种异常 7.2 throws 用在方法声明后面,跟的是异常类名 表示抛出异常,由该方法的调用者来处理
Collection 概述 Collection 是单例集合的顶层接口,它表示一组对象,这些对象也称为 Collection 的元素 JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和...Collection 使用示例 import java.util.ArrayList; import java.util.Collection; public class Demo { public...代码示例 import java.util.ArrayList; import java.util.Collection; public class Demo { public static...Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到 迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的 2....Collection 遍历示例 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;
反射的概述 反射是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。...由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期仍然可以扩展 2....示例代码 import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; class...>... parameterTypes) 返回一个 Constructor对象,该对象反应由此 Class对象表示的类或接口的指定构造函数 // 参数:要获取的构造方法的参数的个数和数据类型对象的字节码文件对象...示例代码 import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException
StringBuilder类概述 StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的 2....StringBuilder类和String类的区别 String类:内容是不可变的 StringBuilder类:内容是可变的 3....StringBuilder类的构造方法 常用的构造方法 方法名 说明 public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容 public StringBuilder(...String str) 根据字符串的内容,来创建可变字符串对象 示例代码 public class Demo { public static void main(String[] args)...StringBuilder sb = new StringBuilder(); //链式编程 sb.append("hello").append("world").append("java
1.1 什么是数组 数组就是存储数据长度固定的容器,存储多个数据的数据类型要—致。...我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。 必须放进内存中才能运行,运行完毕后会清空内存。 Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。...1.5.2 java中的内存分配 在java基础部分我们只需要记住两个内存,分别是:栈内存和堆内存 区域名称 作用 寄存器 给CPU使用,和我们开发无关。...在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 解决方案: 仔细检查数组索引范围,将错误的索引修改为正确的索引范围即可。...在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。 解决方案: 给数组一个真正的堆内存空间引用即可。
ArrayList 一.概述 什么是ArrayList: ArrayList是一种特殊的数组(动态数组),List接口的可调整大小的数组实现。...ArrayList特点: 1.长度可变,动态增减 2.查询速快,增删改慢(比普通数组慢) 使用方法: 在 java.util软件包中,使用导包。...extends E > c ) 构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。...extends E > c ) //构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。...boolean add(E e) 将指定的元素追加到此列表的末尾。 E remove(int index) 删除该列表中指定位置的元素。
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类 interface Map K:键的类型 V:值的类型 1.2 Map 的特点 键值对映射关系 一个键对应一个值 键不能重复...,值可以重复 元素存取无序 1.3 示例代码 import java.util.HashMap; import java.util.Map; public class Demo { public...isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数 2.2 示例代码 import java.util.HashMap; import java.util.Map...Set> entrySet() 获取所有键值对对象的集合 3.2 示例代码 import java.util.Collection; import java.util.HashMap...; import java.util.Map; import java.util.Set; public class Demo { public static void main(String
方法概述 1.1 方法的概念 方法 ( method ) 是将具有独立功能的代码块组织成为一个整体 ,使其具有特殊功能的代码集 注意: 方法必须先创建才可以使用,该 过程成为方法定义 方法创建后并不是直接可以运行的...(使用常量) getMax(10,20); /** 调用方法的时候,人家要几个,你就给几个,人家要什么类型的,你就给什么类型的 这里是...明确参数:主要是明确参数的类型和数量 调用方法时的注意: void类型的方法,直接调用即可 非void类型的方法,推荐用变量接收调用 6....方法重载 6.1 方法重载 方法重载概念: 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 要点(记住!!!!)...: 多个方法在同一个类中 多个方法具有相同的方法名 多个方法的参数不相同,类型不同或者数量不同 注意: 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式 重载仅针对同一个类中方法的名称与参数进行识别
领取专属 10元无门槛券
手把手带您无忧上云