
------【java 基础】
文章平均质量分 82
既过不念,未来不继
我所有的你,都只有一个你;我所有的我,都只有一个我。
展开
-
分治思想—归并和快速排序
文章目录常规唠嗑归并二路代码 —思想核心归并代码快速排序代码一点不成熟的想法常规唠嗑算法的稳定性和正确性:有时候排序算法会涉及到稳定性,首先稳定性是在算法具备正确性的前提下,对于元素的位置是否发生变更的一个说法。假如一个算法运算结束,在最终的序列里,保持两个元素之间初始位置不变,则属于稳定。有木有以前看过《啊哈,算法》的小伙伴,来来来,交流交流思想归并思路: 1,归并老被叫做二路归并,为什么是二路,不是一路,三路?就是说啊,这个算法,每次都有两条线去排序。 2,什么叫做归并?我不管你几路,最原创 2020-11-06 13:22:26 · 935 阅读 · 0 评论 -
锁的实现原理—3,Synchronized实现理解
文章目录java语言、Java虚拟机规范—官方文档Synchronized概述:用法、作用对象锁代码测试Java 代码编译代码测试结果分析为何如此实现的猜测类锁代码测试Java代码编译代码测试结果分析为何如此实现的猜测优缺点优点缺点java语言、Java虚拟机规范—官方文档https://docs.oracle.com/javase/specs/index.html如果我英文词汇量多年没增,那一定是我没有学技术。如果我学技术了,那就不要say hello。Synchronized概述:用法、作用原创 2020-11-02 19:58:08 · 994 阅读 · 8 评论 -
矩阵(二维数组)的基本操作:加减乘+从内至外/从外至内的顺/逆时针遍历
文章目录常规唠嗑矩阵的基本遍历矩阵转置矩阵相加减矩阵相乘矩阵的顺时针遍历-从外至内矩阵的逆时针遍历-从外至内矩阵的顺时针遍历-从内至外常规唠嗑就一个问题:二维数组是矩阵,这有错吗?感慨一下:程序媛和男妇产科医生,好像都挺惨的。我突然知道一个之前的一个业务怎么做更好了。小班同学上课,应该怎么给老师排课?这里边其实有2个固定的轴,一个是周一至周日7天,一个是0-24点24个钟头。把一个老师所有的空余时间排成一个724矩阵A,再把同学们的上课时间要求排成一个724矩阵B,然后两个矩阵相加或者相减,就能得原创 2020-10-31 18:09:56 · 2881 阅读 · 0 评论 -
实现一个时间复杂度小于O(n)的list
文章目录题目答题思路代码NodeLinkListLinkListImplunit test题目众所周知,普天同庆,本宝宝10-15裸辞了。本想做个勇士,脚踩七彩祥云,纵身投入花花世界溜达一圈。但怎奈何呀,我呸,怎奈何,理想很丰满,现实很骨感。苦于无人做伴,再者大盘受创。money在哭泣,内心很焦虑,so,投了投简历。 本次,投了一家专注于二次元垂直社交的公司。 PS:别问为啥不投大公司,第一:我菜鸡我怂逼;第二:我漂亮我要睡觉保持美丽。 问了一下小伙伴们,目前看来最好的是美团,10-10-5,偶尔10原创 2020-10-26 19:57:47 · 1364 阅读 · 4 评论 -
【java基础 15】java代码中“==”和equals的区别
导读:昨夜闲来无事,和贾姑娘聊了聊java基础,然后就说到了这个“==”和equals的问题,我俩都是以前了解过,也常用这个,但是,昨天说到的时候,又乱了,什么比较地址值,什么判断是否同一个对象,基本数据类型啥的,谁都没个准儿,后来写了点代码验证了一番,今儿个写此博客,纪念和好朋友一起探讨学习的经历!PS:我一直知道我这一路走来,受好朋友的恩惠太多了!一、三组示例代码1.1,String类原创 2017-02-06 11:48:27 · 841 阅读 · 12 评论 -
【java基础 16】抽象类和接口的区别
导读:前两天闲着没事儿,看了本书,然后写了点代码,在接口里面写了默认方法实现,因为书上说这个特性是从java8开始的,我还特地给测了一下java7. 没过几天,就有一个技术分享会,刚好也是讲java8特性,然后,顿时就觉得世界观被毁了!怎么回事呢,看下文吧:还记得,当年我刚面试的时候,面试官问我接口和抽象类什么区别,我张口就来了传说中的标准答案,那时候是解释不清楚接口和抽象类各自的用途原创 2017-02-20 14:49:06 · 839 阅读 · 14 评论 -
【java基础 17】集合中各实现类的性能分析
首先是大致的再回顾一下java集合框架的基本情况一、各Set实现类的性能分析1.1,HashSet用于添加、查询HashSet和TreeSet是Set的两个典型实现,HashSet的性能总是比TreeSet(SortedSet的子类)好,尤其是最常用的添加、查询等操作。原因:TreeSet需要额外的红黑树算法来维护集合元素的次序,只有当需要一个保持排序的Set时,才应用原创 2017-02-21 11:16:16 · 865 阅读 · 14 评论 -
【java基础 14】锁的粒度:ThreadLocal、volatile、Atomic和Synchronized
导读:题目中提到的几个关键字,分别是解决并发问题中,加锁所使用到的几个关键字,每个关键字代表的锁的粒度 不同,本篇博客,主要是从概念定义上,区分这几个关键字的应用场景。(PS:睡梦中,依稀记得有回面试的时候,问了我一个问题:你们在加锁的时候,加多大的锁? 哇塞,当时愣了一下,压根儿就没有这个大小的概念,我真的以为都是一样的)话说,就像加锁日记本的锁是个很小的艺术锁,保险箱一般是密码锁(原创 2017-01-07 16:46:44 · 2432 阅读 · 12 评论 -
【异常 1】什么是异常
定义:一个异常是在运行程序时,所遇到的一个事件,而这个事件破坏了程序执行的正常流程!当在一个方法中遇到错误时,这个方法创建一个对象,并操作这个对象进入运行时系统(创建并移入运行时系统的这个过程,叫做抛出一个异常)。这个被创建的对象,叫做异常对象,它包含的信息有:错误(程序所遇到错误的类型、状态)。在方法抛出一个异常后,运行时系统试图去找到一些东西去处理它。而处理异常的“一些翻译 2017-07-03 09:46:15 · 781 阅读 · 15 评论 -
当网络中断的时候,JTA全局事务管理,究竟会不会回滚???
前言:有人问了我一个问题,就是说在网络中断的时候,JTA的全局事务管理,会不会回滚?当时说会回滚,但没给对方说清楚理由,也不太认同我的观点。现在总结一下。原创 2017-09-16 11:30:36 · 968 阅读 · 1 评论 -
【java基础 11】java集合框架学习
导读:本篇博客主要是从整体上了解java的集合框架,然后主要介绍几个自己在项目中用到的结构,比如说:hashtable、hashmap、hashset、arraylist等!一、宏观预览从宏观上看,主要包括Iterator接口、Collection接口(List和Set子接口)、Map接口!那么在自己的项目中,我常用到的有list、set和map接口!二、分别解析2.1,I原创 2017-01-04 20:46:57 · 803 阅读 · 14 评论 -
【java基础 13】两种方法判断hashmap中是否形成环形链表
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写。两种方法,一种是丢手绢法,另外一种,是迷路法。这两种方法的基本思想:假设有环(顿时想到了三个数中找最大的,假设一个最大值有木有,更有木有想到一个排序算法呢?)一、丢手绢法(指针追赶法)其实,这种方法时有个很高大上的名称的,叫做指针原创 2017-01-05 15:36:48 · 1929 阅读 · 11 评论 -
【java基础 2】J2EE的13种规范
导读:看完了J2EE的视频,没有什么技术实践,现在就从理论上说明一下J2EE的13种规范,以及现在的自己对它的一个理解。可能会有偏差,但是,算是做为目前的一个记录。一、13种规范1.1、JDBC(Java Database Connectivity,java数据库链接)JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。原创 2016-01-12 15:46:55 · 1269 阅读 · 8 评论 -
【java基础 3】树形结构数据呈现的递归算法实现
一、基本概况在我的项目中,常常会用到树形结构的数据,最为明显的就是左边菜单栏,类似于window folder一样的东西。而我之前一直是借助前端封装好的ZTree等工具实现展示,而后台则通常使用递归进行数据的查找。通常,我们在设计数据库表的时候,一般会使用三个字段:id,name,pid。如下图所示:二、代码实现首先是建立实体类: private Str原创 2016-08-27 18:12:04 · 11884 阅读 · 11 评论 -
【java基础 4】树形结构数据呈现的非递归算法(循环)实现
一、基本概况上一篇博客介绍到用递归实现树结构数据的查找,那么这篇博客,我就结合自己对于树的理解,然后用一种非递归的方式进行树结构数据的处理。首先,改造数据库表设计,加入度的概念:首先,layer的设计,是来源于Word文档的目录带来的灵感。想一想我自己在写Word文档的时候,通过标题1,标题2等的设立,然后就可能自动生成目录。我感觉这个和我要完成的树结构数据的处理有共同之处原创 2016-08-27 22:03:03 · 3458 阅读 · 16 评论 -
【java基础 5】树形结构数据加载的思考
前面两篇文章,分别介绍了使用递归和非递归算法加载树形结构数据的方式,本篇文章,则是自己闲下来的时候,进行的一点小思考。一、什么地方会用到树形结构刚开始一看到这种结构的时候,最先是想到了家谱。家谱就是一种树形结构,那是一种对我来说最为直观的一种理解。然后,在程序开发中,发现,树形结构的应用,更多的是出现在一些后台管理系统。而其具体应用,则是作为类似于windows文件夹的一个菜单导航原创 2016-09-12 21:12:09 · 1499 阅读 · 13 评论 -
【java基础 6】java的发展史简介
结合到近期在做springboot框架开发遇到的关于jdk版本的问题,本篇博客,主要介绍一下java的发展历史,侧重纯文介绍每个版本的特性。——主要从理论上做个宏观的了解,不做具体的技术研究讨论!一、宏观图形说明1.1,开发不常用版本java1.0:1996年1月23日,jdk1.0发布!提供的服务:一个纯解释执行的java虚拟机实现(sun classic V原创 2016-12-02 11:53:32 · 1160 阅读 · 16 评论 -
【java基础 7】java内存区域分析及常见异常
本篇博客,主要是读书笔记总结,还有就是结合培训分享的总结,没有太多的技术含量!java 的自动内存管理机制,使得程序员不用为每一个new惭怍的对象写配对的delete/ free代码(回想起C++的编写析构函数,还是挺亲切的)因为内存由虚拟机管理,所以,一旦出现了内存泄漏和溢出等问题,刚好又不了解虚拟机是怎样使用内存的,那排错工作将会变得比较艰难!一、内存分配P原创 2016-12-04 17:50:34 · 787 阅读 · 19 评论 -
【java基础 8】垃圾收集算法及内存分配策略
本篇博客,主要介绍GC的收集算法以及根据算法要求所得的内存分配策略!一、收集算法收集算法,主要包括四种,分别是:Mark-Sweep(标记-清除)、Copying(复制)、Mark-Compact(标记-整理)、Generational Collection(分代收集)1.1,Mark-Sweep这种算法包括两个阶段,首先标记出所有需要回收的对象,然后再标记完成后统一回收掉所有被标原创 2016-12-09 11:40:07 · 802 阅读 · 22 评论 -
【java 基础 9】原来我从没有了解过String类
导读:这两天没有做项目,然后就想着把之前在项目中用到过的东西总结总结。记得之前做今日开讲项目时,在比较学生学号的时候,我最开始用的是“==”,但是,实践证明,这个玩意儿吧,总是很奇怪,有时候对有时候不对。后来就换成了equals,结果就好多了。那时候我就在想,这两个有什么区别,string类型到底是怎么回事?现在总结总结,也祭奠一下当年面试笔试题的那些亡魂!一、实例分析首先,看看代原创 2017-01-03 11:45:52 · 877 阅读 · 11 评论 -
【java基础 10】hash算法冲突解决方法
导读:今天看了java里面关于hashmap的相关源码(看了java6和java7),尤其是resize、transfer、put、get这几个方法,突然明白了,为什么我之前考数据结构死活考不过,就差那么一点点。答:代码积累太少了!这段时间,看了java的源码、演变过程等,被虐的很惨,但是,很开心! 本篇文章,主要介绍解决hash算法冲突的方法一、基本概念散列表:hash:a原创 2017-01-04 16:17:39 · 2570 阅读 · 9 评论 -
【java基础 12】HashMap中是如何形成环形链表的?
导读:经过前面的博客总结,可以知道的是,HashMap是有一个一维数组和一个链表组成,从而得知,在解决冲突问题时,hashmap选择的是链地址法。为什么HashMap会用一个数组这链表组成,当时给出的答案是从那几种解决冲突的算法中推论的,这里给出一个正面的理由:1,为什么用了一维数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:原创 2017-01-05 14:40:25 · 14345 阅读 · 17 评论 -
【Java基础 1】Java2平台的三个版本介绍
导读:关于java的三种分类J2SE、J2EE、J2ME,在网上有很多资料,然后自己写的,也大多是从各个网站上搜罗里的。算是自己的一种笔记,或者明白的说,就是把别人的东西抄一遍。但是,这对于我来说,也是很重要的一步。一、J2SEJ2SE(Standard Edition,标准版):二、J2EEJ2EE(Enterprise Edition,企业版):三、原创 2016-01-12 11:50:25 · 3274 阅读 · 6 评论