自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

余同学的开发之路

快乐学习,快乐生活

  • 博客(57)
  • 收藏
  • 关注

原创 GC 核心关注点都在这里

本文主要把握 3 个问题,哪些内存需要回收,什么时候回收以及如何回收。继续阅读,你会找到答案的。Java 运行时内存区域可以划分为程序计数器,虚拟机栈,本地方法栈,Java 堆,方法区,运行时常量池这几个部分。程序计数器,虚拟机栈,本地方法栈这 3 个区域会随着线程的存在而存在且在程序编译期间就确定了,所以我们在讨论垃圾回收的时候不考虑他们,主要考虑的就是 Java 堆和方法区,这部分内存在程序运行时是动态分配的,也是垃圾收集器主要关注的区域。在确定了哪些内存需要回收之后,我们再看看什么时候回收。我们常使用

2021-10-10 02:39:26 197

原创 一个 21 人的微型传记

这两天在看《绝非偶然》这本书,此书是由知识星球的头部大 V 们的故事组成,在我看来更像是一个个活生生的例子,一个个成长与奋斗的故事。读完这本书,脑子里回响的都是学习,总结,坚持,写作,分享,输入,输出这些词。书本的很多大 V 都给出了一些切实可行的建议,真实的经历,整本书阅读起来不费力,就像是看故事书一样,在故事中学习。利他即利己我们做事情需要把商业化放在第一位嘛?我的理解是不用的,利他终将利己,不以商业化为目的是不是就不变现了呢,其实也不是,我们找到一个点,以此来服务好其他人,你要说服务的最终目的是变现,

2021-08-16 22:46:19 177

原创 为什么 TDD 在国内不流行?

TDD,Test Driven Development。测试驱动开发,是由美国软件工程师 Kent Beck 提出的一种软件开发流程。这种流程讲究测试优先,所有的代码都是经过测试的,开发流程从我们的熟悉的 "开发-测试-重构-测试" 转换 "测试-开发-重构-测试",讲究的是测试先行。TDD 的开发流程1Red(test case fail):此时你只是提前设计好 test case, 定义好入参和出参,不管你写什么,一定会报错。有些方法、接口和类可能你已经想好,但是此时还没有...

2021-04-21 23:29:59 349

原创 你在工作中会写测试用例嘛?Mockito 的最佳实践

记得以前面试的时候,面试官问我,平常开发过程中自己会不会测试?我回答当然会呀,自己写的代码怎么不测呢。现在想想我好像误会他的意思了,他应该是想问我关于单元测试,集成测试以及背后相关的知识,然而当时说到测试,我也只知道 Junit。那么今天就说说开发过程中涉及到的测试以及相关的技术栈。虽然测试分为单元测试,集成测试,系统测试等等,但是作为开发,我们可能不需要做这么多的测试(有时甚至不做……)接下...

2020-04-10 22:54:12 1547 1

原创 关于线程和多线程入门级选手看这里

首先我们要知道的是进程和线程的概念是在建立在操作系统层面上的,那就来捋捋看怎么就出来了进程和线程。在单 CPU 时代,若是没有操作系统的控制,那么一个程序会一直在 CPU 上执行,但我们不希望这样,所以就设计出 “时间片” 的概念,这个时间片就是由操作系统的调度器来控制,专门负责切分 CPU 的时间片,轮流分给不同的程序。每一个应用程序只在一个时间片内运行,而时间片过于小,所以在宏观上感觉就是...

2018-12-25 15:37:46 389

原创 断舍离

这几天大脑里不断回想起 “断舍离” 这几个字,这其实也是之前看过的一本书,是日本山下英子创作的家庭生活类著作,总结下来整本书的大意也就在传播一种清爽的身体和心灵的状态。断 = 不买,不收取不需要的东西。舍 = 处理掉堆放在家里没用的东西。离 = 舍弃对物质的迷恋,让自己处于宽敞舒适,自由自在的空间。今天不是要说本书的内容,主要是要谈谈我最近的一些感想,也就是断舍离在我自身的体现,在物质上的...

2018-12-25 15:25:59 1749

原创 人性的弱点【卡耐基】

这本书讲的都是一些【道理】,书中以道理和故事相结合的形式展开论述。然而,读完之后发现是这么一回事,但是真正应用到生活中是另一回事,那为什么我还是要像数来宝一样的列出这些条条框框呢。我认为,虽说这些道理我们大都明白,但总会有一些迷糊的地方,这样一来,可以提高我们的认识。最主要的原因是我们大部分人都处在【知道而不做】的地步,也希望整理出这些内容,在想起来时,在存在相应困惑时,可以做到温故知新,提...

2018-12-25 15:11:28 714

原创 使用 Eclipse 从 0 开始搭建一个 Maven 项目

准备工作首先我们要下载 Eclipse,Maven 并安装,配置 Maven 环境变量。这些都是基本操作,这里不做叙述。我本地的版本分别是 Eclipse 2017 Maven 3.0.5 JDK1 .8 ,这里提一下,之前用的 Eclipse 比较老,所以项目一直跑不起来,后面换成 2017 之后,就行了。下面就截图给大家展示一下如何创建一个 Maven 项目。关于 Eclipse 中的配置...

2018-11-29 14:59:34 801

原创 Python 中的文件操作

在学习 Python 的过程中,不经常使用到文件相关的操作(也有可能是我学的不到家),说实话,这些不常用的 API ,在真正需要的时候还是要百度的,自己还是写不出来。说要整理,也不知道该如何整理,就干脆一点,直接上我做练习的时候写的一个工具类吧。日后再有文件相关的操作,都可以写成方法加上去。 另外,普及一个知识点,这个文件可以直接拿来使用,在使用之前可以使用dir() 和 help() 方...

2018-09-10 18:57:50 893

原创 Java 中的 I/O

I/O 指的是 input 和 output ,也就是输入和输出,我们说的是 Java 中的 I/O,那我们就在站在虚拟机的角度去看看有哪些输入和输出。输入又可以称为数据源端,能想到的会有,文件,网络,控制台手动输入。而输出又可以称为数据接收端,能想到依旧还是那几个,输出到文件,网络,控制台。 那好,目前只是理清楚了数据从哪里来到哪里去,然而,我们的数据交互肯定不是这么的简单,我们还需要考虑...

2018-09-10 10:58:51 566

原创 浅谈 Java 中的枚举

枚举也就是一一列举,常用来表示那些可以明确范围的集合,比方说性别,季节,星期,月份等。在 JDK 1.5 才出现枚举类,在没有出现枚举类之前,我们要表示几个确定的值通常会使用常量来表示,形如 public static final Integer SPRING = 1; public static final Integer SUMMER = 2; public ...

2018-09-06 11:08:14 295

原创 高效能人士的 7 个习惯

本书的作者史蒂芬 · 科维被美国《时代》周刊评为 “ 25 位最有影响力的美国人之一 ” 。也是世界级的人类潜能大师,他的著作,我等怎能不拜读一下。书中首章就给全文下了一个基调,主要阐述成功的内在因素到底是什么?是由我们的个人魅力决定,还是由我们的个人品德决定?成功人士的成功是有一定的原则的,也需要个人不断的成长。我们可能都会存在先入为主的观念,而本书就告诉你,我们要以自己的原则为中心,以...

2018-09-05 10:21:44 387

转载 Java 中的泛型

先来看一下以下 2 段代码,然后再进一步引出我们的泛型。 public static void main(String[] args) { List list = new ArrayList(); list.add("123"); list.add(456); Iterator it = list.iterator();...

2018-09-04 14:18:08 297

原创 异常了解一下

前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一样的一面,会从源码和整体来看。其次,之前的整理都是在某个地方止步,可持续性较差,现在就尽力坚持住。因为还有你们再看 ~ 另外,欢迎各行各业的同学们给我投稿,让大家都能互相了解,岂不是很棒!进入正...

2018-08-24 09:39:39 423

原创 Java 集合之 Map

Map 就是另一个顶级接口了,总感觉 Map 是 Collection 的子接口呢。Map 主要用于表示那些含有映射关系的数据,存储的是一组一组的键值对。Map 是允许你将某些对象与其它一些对象关联起来的关联数组。举个例子感受一下:我想通过学生的学号来找到对应的姓名就可以使用 Map 来存储 Map< Integer ,String > 。我想知道每个学生一共选了几门课可以这样存储...

2018-08-22 17:20:25 328

原创 Java 集合之 Collection

集合就是一组数的集合,就像是一个容器,但是我们应该清楚的是集合中存放的都是对象的引用,而不是真正的实体。而我们常说的集合中的对象其实指的就是对象的引用。我们可以把集合理解为一个小型数据库,用于存放数据,我们对集合的操作也就是数据的增删改查,在 Java 中有两个顶层接口 Collection 和 Map 用于定义和规范集合的相关操作。这篇文章主要说一下集合框架中的 Collection 部分。...

2018-08-18 22:16:33 509

原创 Python 学习经历分享

如果说 Java 是亲儿子的话,那么 Python 应该就是干儿子了。看了一下所有关于 Python 的笔记,我发现原来我在 4 月份的时候就已经涉足 Python 了,但是到目前为止才真正算做出了一个案例,我尝试回忆一下我的 Python 学习过程,分享给大家,这中间有很多弯路。我最开始学习 Python 就是看廖雪峰的官方网站,大概是将 Python 基础部分学习完了,然后我就直接上手做了...

2018-08-16 14:46:22 783

原创 String 的常用操作

String 类,我可以不负责的说在 Java 中这个类应该是使用最频繁的类了。然而关于它的常用的操作,我却不甚了解。整理这个东西很反人性的,这些方法,你看到他的时候感觉很简单,但是真正用的时候还是不太会,还是会借助网络,今天我就来强行整理一波,不求全,但求精。在这里,不得不先插上一句话,因为我的强行推荐,我的一些非计算机同学们也关注了我,若是你不慎打开了这条推文,我表示抱歉,但还是希望你可以...

2018-08-13 20:52:18 408

原创 String 与不可变对象

什么是不可变对象 ?不可变对象指的是在创建一个对象之后 ,不能再改变它的状态 ,那么这个对象就是不可变的 。不能改变状态的意思是 ,不能改变对象内的成员变量 ,包括基本数据类型的值不能改变 ,引用类型的变量不能指向其它的对象 ,引用类型指向的对象状态也不能改变 。这里插播一下对象和对象的引用之间的区别 ,对象的引用是放在栈中的 ,而对象是放在堆中的 ,看这个例子 String s = "123...

2018-08-07 17:32:53 336

原创 Java 中的国际化

国际化 ,英文叫 internationalization 单词太长 ,又被简称为 i18n(取头取尾中间有18个字母)不经大声呼喊 ,这都行 !接着看什么是国际化 , 国际化是指让产品或是程序在无需做出改变的情况下就能够适应不同语言和地区的需要 。同样是打招呼在中国你会说 “ 你好 ” ,在美国你会说 “ Hello ” ,你看 ,你已经是 i18n 了 。在 Java 中实现国际化主要是借...

2018-08-06 17:46:45 19817 1

原创 再续上月 —— Python 篇

好快呀 ,都快一个月没有记录 Python 了 ,怎么能这样呢 ? 其实是这样的 ,我这段时间除了本身时间的分配给 Java 之外 ,我还是有学习 Python 的 ,一直没有记录是因为我发现我遇到以个小小的困惑 ,因为我是看书学习 Python 的 ,正常情况下 ,我都能看的明白到底是个什么意思 ,但是对所学的知识 ,我却没有用武之处呀 ,所以我就挺郁闷的 ,结果就是打消了学习的积极性 。因为没...

2018-08-01 19:53:31 330

原创 接口和工厂设计模式

接口又是怎么一回事呢 ?接口就是一组规范 ,是在定义一种标准 。这说起来真的挺别扭的 ,我是这么理解的 ,当我们的抽象类全是抽象方法时 ,我们就可以定义接口了 ,那为什么不能继续用抽象类来表示而要定义一个接口呢 ?由于 Java 本身有单继承的局限 ,而接口是可以多实现的 。所以我就额外定义一个 interface 来表示哪些全是抽象方法的类 。相比于抽象类 ,我们可以感受出 Java 设计的初衷...

2018-08-01 19:04:11 1392

原创 我的 Java 自学之路

其实在转正之后我就想抽个时间好好的梳理一下我的 Java 上车之路 ,但是一直拖到现在 ,因为有学弟问到 ,所以也就给了我动力 。毕竟答应了人家的事要做到 。首先要有相应的背景介绍 ,不然说个毛线啊 ,大家不在同一水平 ,不好参考借鉴 。我呢 ,学校很牛逼 ,是一所刚过线的二本 ,自身的成绩在班里也就第 8 名左右吧(一共 60 个人),在大二的时候学校开设了 Java 这门课 ,我的期末考试...

2018-07-29 14:53:19 33222 18

原创 抽象类和模板设计模式

总是以提问的形式来开始我的总结 ,为什么会出现抽象类 ?有哪些应用 ?上一次我们已经说过了 ,继承可以增加代码的复用性 ,子类可以把父类的方法拿过来直接用 ,也可以重写父类的方法 。那么好 ,假设有一个 Animal 父类中含有一个 “叫“ 方法 ,有 n 多个动物继承了 Animal ,结果由于动物的独特性每一个子类都需要重写父类的 “叫“ 方法 。那么问题来了 ,所有的子类都重写了父类的方...

2018-07-26 09:59:54 802

原创 Java 中的三大特性

我们都知道 Java 中有三大特性,那就是继承 ,封装和多态 。那我今天我就来说说这几个特性 。老样子 ,先问问自己为什么会存在这些特性 。首先说封装 ,封装就是使用权限修饰符来实现对属性的隐藏 ,同时提供一些共有的 get / set 方法来对数据进行访问 。这样怎么实现封装的效果的呢 ?我们可以在 get 或 set 方法内部添加一些逻辑控制语句 。比方说在设置年龄的时候 ,我就限制传入的...

2018-07-24 09:57:08 1511

原创 Java中的访问控制权限

Java 中是如何对访问权限进行控制的 ?Java 中的访问控制权限可以分为 4 级 ,分别是 public ,protected ,default ,private 。放一张看了很多遍却不一定记住的图 。 图中打 Yes 即表示可以访问 ,举例说在同一个类中 ,不管你用什么样的访问修饰符修饰属性或方法 ,我都可以访问 。而在子类中 ,只能访问父类中被protected ,public ...

2018-07-19 21:08:31 2754

原创 Java 中类的初始化过程

先来一张 JVM 中的内存模型 。 在Java 虚拟机原理这本书中介绍了类会被初始化的 5 种情况 。1 遇到 new getstatic putstatic 和 invokestatic 这 4 条指令时,这4 条指定分别对应使用 new 关键字创建对象,读取和设置一个静态字段(被 final 修饰的静态字段除外,因为已经在编译期间把结果放到常量池中了)和调用一个类的静态方法 。2...

2018-07-16 20:38:55 314

原创 常见的算法:二分法查找,冒泡排序和选择排序

今天主要说一下常见的算法 ,于是我百度了一下点进那 “ 牛逼 ” 的知乎看了一眼 ,完蛋了 ,这都是些神马 ??? 我怎么一个都不会呢 ,我要的可是那种很常见的算法啊 ,好吧 ,无形中又被深深的伤了一刀 ,好在我迅速调节状态 。管他呢 ,我就按照自己 low 的来吧 。进入正题 ,我要说的几种算法就是二分法查找 ,冒泡排序和选择排序 。以数组为例 ,谈谈它们在 Java 中的实现 。二分法查找...

2018-07-14 16:47:53 2498

原创 数组的介绍

数组是指一组数据的集合,且同一个数组中存在的数据都是同一类型的,我们用下角标来表示元素在数组中的位置,从 0 开始 。数组的长度表示数组中元素的个数,所以说,长度为 5 的数组的索引是从 0 ~ 4 。数组的声明就是在说明一下,哎,注意了,我需要一个容器来存放这些类型相同的元素 。声明的方式有这些。 int[] arr ; int arr[] 或是 对象的集合 People[] p ; 这样就...

2018-07-11 20:39:52 1111

原创 Python中的面向对象和异常的处理

在之前我们已经说过了Python中的内置的主要的几种对象类型,(数,字符串,列表,元组和字典)。而面向对象的核心任务还没出场呢 。那么我们常说的对象是什么类型的呢,其实他的类型就是“类”,有点抽象,但就是这样,同一类人,可以有多个对象,这很符合实际的 。那么对象都有哪些特性呢 ?继承封装和多态,这时通用的思想 。继承是为了提高代码的复用性,子类可以通过继承父类来实现父类中的方法,这就是光明正大...

2018-07-10 20:36:31 511

原创 Java中的数据类型

我们学习Java就是为了编写程序完成功能,而什么是程序呢?程序 = 数据结构 + 算法。 分开看,数据结构指的是数据与数据之间的关系,那我们先来了解一下Java中的数据都是怎么表示的呢 ?也就是说数据都有哪些不同的类型呢 ?顺带说一下变量的概念,在Java中变量可以理解为是一个遥控器,而变量所代表的值就是电视机,我们是通过操作变量(遥控器)来操作不同的值(电视机)。而遥控器也有不同的型号的呀,...

2018-07-06 12:03:10 279

原创 Python中的函数

学了python中的数据类型,语句,接下来就来说一下python中的函数,函数是结构化编程的核心。我们使用函数可以增加程序的可读性。自定义函数时使用关键字def 函数由多条语句组成。在定义函数的时候我们可以使用如下的方式给函数定义一个解释文档。def square(x): 'This is comment of this method !' return x * x# 获取...

2018-07-03 21:41:02 359

翻译 Python中的语句

上一节已经了解到了Python中的基本数据类型和一些基本的操作,本节就大致讲一下关于Python中的语句的相关问题。我们熟悉的print()语句可能是这样的。print('YJK923') or print(name) 但我们也要知道print函数中可以包含多个参数,其中参数之间用逗号隔开,像这样,print(name1,name2,sep = '_') 这句话表示将name1 和 name2...

2018-07-02 21:29:47 395

原创 Python 入门之基本数据类型

为什么我要学习Python这门语言呢?其实很简单,我想拓展技术面的同时,尝试更多的方向,可能最后会不了了之,谁知道呢?有可能的话,我会向爬虫和数据分析这个方向走。所以也就开始了我的Python学习之旅。当然,前提是我的本职工作Java也要前进。所以,几乎在同一时间我开了两个专栏用于记录Java和Python的学习过程。因为有Java的基础,所以入门Python还是比较简单的,但我我不想草草了事...

2018-06-21 20:45:21 362

原创 对于面向对象的理解

按照惯例,先做一个简单的介绍,现在开始学习 Thinging in Java 4 ,一边看,一边记录,我都不想给自己设定时间安排了,毕竟很少实现过。所以就这样吧!不定期的更新,我都会放到专栏中的。所以我可能会有很多表述和书中是一样的,外加一些自己的理解吧。我们常说的一句话是“一切皆对象”这话也就说说吧,理解吗?其实并不理解。没关系,我们可以假装理解了。那我就来结合书中的观点说一下面向对象的...

2018-06-17 21:15:57 416

翻译 PL/SQL 入门学习(二)

这里是PL/SQL的第二讲,基础不知道点这里呀!PL/SQL 数组 数组的定义 type array_name is array(array_lens) of varchar2(20) ; 举例:TYPE namearray IS VARRAY(5) OF VARCHAR2(10);Type grades IS VARRAY(5) OF INTEGER;使用可变数组:D...

2018-06-15 11:50:03 8747 2

原创 PL/SQL 入门学习(一)

在学校的时候虽说上过PL/SQL这门课,然并卵,只恨当时啊!工作关系,需要用到Oracle存储过程。我就简单看了一些教程,特此记录一下。首先,先介绍一下PL/SQL 是什么? PL/SQL是是由甲骨文公司在90年代初开发,以提高SQL的功能。PL/SQL是嵌入在Oracle数据库中的编程语言之一。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点...

2018-06-15 11:19:38 52427 2

原创 Windows 10 下oracle 11g 数据库的安装

首先下载Oracle数据库文件,若想获取文件和远程连接工具,可以关注公众yujikui1115后回复Oracle获取。(实在抱歉,个人推广手段~~)下载之后解压到同一个文件下。选中两个zip文件解压即可解压到同一文件。 打开database文件,执行setup.exe 文件 。 具体过程没有截图,好像就是一直下一步就行,中间会配一下系统用户的口令(即密码)最后的时候注意修改一下口令...

2018-06-15 10:06:51 2762 3

翻译 Java 语言整体介绍

Java是如何出现的呢?这就要回到1991年,那时候随着单片机的发展,出现了很多微型的系统,Sun公司在这个时候就成立的一个项目组,成员就有我们熟知的“Java之父” 詹姆斯·高斯林,起初的目标是为了占领计算机在家电产品上的嵌入式应用这个市场。首选的开发语言是C++,但是在具体的开发中,发现有写需求是C++不能满足的,比方说,跨平台(一个家电中可能包含多个厂商的芯片),还有就是C++系统过于庞大,...

2018-06-14 11:23:15 848

原创 在windows 环境下: python 中的cmd shell IDLE 和 ide 的区别

在windows 环境下: python 中的cmd shell IDLE 和 ide 的区别在安装了python之后环境之后,我们在哪里可以编写python代码呢?我们要说的这几个东西,就是我们与python交互的方式。第一个就是command lind 即为命令行的方式,也就是我们常说的cmd。 我们在”开始“里直接输入python 回车即可打开。或是输入 cmd 在命令行中再输入py...

2018-06-04 16:53:16 21367 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除