java
文章平均质量分 81
酒浅未眠
有些事情羡慕不来!
展开
-
浅谈Java8的HashMap为什么线程不安全
PS:本文使用的Java源码是JDK1.8。之前写过一篇类似的文章,但是因为给出的 demo 错误,所以删除原文章重写一份。 public static void main(String[] args) { Map<String, String> map = new HashMap<>(); for (int j = 0; j < 100; j++) { double i = Math.random() * 1原创 2020-05-31 20:07:12 · 1507 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder的区别
如果你学过 Java 你应该对 String 很熟悉,如果你学的不深,可能对后面两个都没有听说过吧。一个偶然机会在某个源码里面看到了 StringBuilder 这个类,一百度,别人写的攻略都是零几年写的了,知识储备差了十年。如果你使用过,那么恭喜你,你在Java性能优化上走出了第一步。在上一篇文章聊一聊String那些事情中,我提到过 String 是一个被申明为 final class,所...原创 2018-05-25 17:56:24 · 352 阅读 · 0 评论 -
Java对象的创建方式
好久不更文了,今天聊一聊 Java 对象的创建方式,Java 对象创建一共有四种。 - 关键字 new - 反射 newInstant() - Object 的 clone() - 序列化 readObject()关键字 newStudent s = new Student();这段代码看着是不是特别熟悉,稍微学过一点Java的都写过类似的代码的,也是我们最初实例化对象的方式...原创 2018-06-08 17:01:58 · 399 阅读 · 0 评论 -
Java设计模式之单例模式
如果说设计模式也有知名度排名,个人觉得单例模式应该排到第一名。单例模式说简单也简单,说难也难,主要在于不同情况之下应该有不同的选择。单例特点单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉模式(线程安全)public class SingletonDemo { private static final Sin...原创 2018-06-18 22:28:50 · 270 阅读 · 0 评论 -
SpringBoot 入门例子
SpringBoot 入门例子如果你学习过 Spring ,那么你一定体会过 Spring 繁琐的配置文件,不否认 Spring 框架的强大功能,但是每次都需要配置,是不是觉得苦恼呢?有抱怨的地方就有机会, SpringBoot 应运而生,无需繁琐的配置,只需简单的注释就可以便捷的开发,让我们一起学习这个框架吧。IDE:IntelliJ IDEA1.创建一个 Maven 项目 ...原创 2018-06-26 11:25:43 · 370 阅读 · 0 评论 -
Java 趣事之 a=a++ 和 a=++a
如果问 a++ 和 ++a 的区别,估计很多都能回答上来。a++ 是先取 a 的值使用,再 a 自增加 1 。而 ++a 刚好相反,是先自增再赋值。这里有点编程基础都可以理解,不做过多解释,但是在 Java 里面有些事情不像表面那么简单的。int a = 1;a = a++;System.out.println(a);凭借自己所学,在不测试的情况之下,你能给出答案吗?第一次看见...原创 2018-07-16 15:16:22 · 17457 阅读 · 8 评论 -
初识Java序列化和反序列化
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...原创 2018-07-03 16:40:59 · 310 阅读 · 0 评论 -
初识 Java 垃圾回收
Java 和 C++ 之间有一堵内存管理围成的高墙,墙外的人想进去,墙里的人想出去!什么是垃圾回收Java 不需要手动管理内存,对象的分配都由 JVM 帮我们完成,不用自己申请内存。既然申请了内存,自然就要释放内存,释放内存的过程就是垃圾回收。为什么要垃圾回收随着程序的运行,内存中实例对象和各种变量会越来越多,占用的内存会越来越大,内存容量是有上限的,如果不进行垃圾回收...原创 2018-07-12 11:02:12 · 287 阅读 · 0 评论 -
浅谈 Java 四种引用类型
好久没有写技术博客了,虽然写了一些面经(微信公众号:卡戎),但技术才是根本。今天就谈一谈 Java 对象的四种引用方法吧。StrongReference(强引用)A a = new A();这就是强引用,也是最常见的引用方式。如果对象是一个强引用,那么 JVM 绝对不会回收他,绝对到哪种程度呢?宁愿牺牲自己抛出 OutOfMemoryError 挂掉程序,也不会去回收。正如「在我死...原创 2018-08-08 16:12:58 · 2021 阅读 · 1 评论 -
Java 进阶基础知识汇总
我断断续续花费一周的时间整理了这份 Java 进阶基础知识的思维导图。以前觉得这是一个简单的事情,感觉不就是跟着书上的知识点抄一遍嘛,但真的自己动手写过后,才发现并不是那么一回事。说说自己整理心得吧。首先克服的是畏难情绪,整理过程中,我不止一次想放弃。像枚举那块,平时用的都比较少,关于一些特定的用法根本没有太多资料,只能去看官方英文文档自己翻译理解。整理好了,自然要发布自己的思维导图共享给...原创 2018-09-04 09:55:26 · 485 阅读 · 0 评论 -
记一次 MySQL 查询功能实现
单纯的记录一个 sql 语句的修改过程。业务场景运营后台需要对用户金币变动信息按照时间段(以天为最小单位)统计查询。数据表抽象id(记录数据唯一标识,主键,account(用户登录唯一标识)cost(单日金币变动汇总)type(变动类型,收入和支出)vip(记录当前的 vip 等级)date(当天变动的最新时间)特殊说明一个用户一天最多两条记录汇总,一个...原创 2019-01-23 13:40:30 · 434 阅读 · 0 评论 -
聊一聊String那些事情
消失了一段时间,也不知道在远方的电脑面前是否有人惦记着我。–pluto在Java里面String肯定是最常用的数据类型没有之一,但是很多人真的了解String这个类吗?String类是一个final修饰的,这表明String是一个不能被继承的类。我当初还傻乎乎想过要继承String,编译器报错,网上查了一查才发现String是fianl修饰,如果当时小手一点看一看,我自己就可以节省一下上网...原创 2018-05-19 11:27:40 · 318 阅读 · 0 评论 -
谈谈==和equals()那些事情
一转眼好几天都没有写些什么东西了,今天正好周末,我们就聊聊==和equals使用时的那些事情吧。==和equals的区别是什么?有一点Java基础的人都会回答,==是基于内存地址的比较,equals()是基于对象内容的比较。但事情就真的就这么简单吗? 上一段测试代码public class Animal { public String name; public ...原创 2018-04-14 11:08:38 · 425 阅读 · 1 评论 -
两场在线笔试的反思和总结
上周参加了两次在线笔试:爱奇艺和美团,都选择的后台方向,趁着还有一些零碎的记忆,写一写自己关于这两场在线笔试的总结。爱奇艺爱奇艺的在线笔试时间是2.19号19.00-21.00,总共两个小时的时间,20道选择题和3道编程题。说说这个过程吧,先做20道选择题,都是问了一些比较基础的知识,整体感觉中等难度,刷过一些的题的人应该都能轻松的回答上的。说说3道编程题吧,我只有第二道题的通过率为1...原创 2018-04-23 10:37:22 · 540 阅读 · 0 评论 -
javadoc和Doclet使用的一些事情
最近项目有要求,需要我把方法上面的文档注释导出,给测试那边阅读。 首先说说Java里面的注释,一共有三种。1.//单行注释 2./* */区块注释,可以有多行 3./** */文档注释ps:上面那个不换行,不能正确显示。本文重点就在第三种:文档注释。说到文档注释,我们很自然的就想到了javadoc,这个官方提供的工具是相当好用,直接在命令行运行就可以生成html...原创 2018-02-25 17:13:35 · 3084 阅读 · 0 评论 -
Java三大特性之封装
Java三大特性:封装,继承,多态。 请记住这三个关键词,只要你不放弃学Java,这三个关键字就会一直伴随你整个Java学习过程。今天我就先讲讲封装,继承和多态可以查看我其余两篇文章。Java三大特性之继承Java三大特性之多态Java是一个面向对象语言,这个是基础也是核心,如果你不知道这个概念,那么请点击右上角的×,出门右转。 什么是封装?对调用者隐藏...原创 2018-03-19 14:18:02 · 334 阅读 · 0 评论 -
Java简单爬虫实现
最近闲来无事,就自己写了一个爬虫程序。可能有人会好奇,为什么不用python写呢?答案是:傲娇。我就傲娇的用java写了,怎么滴!其实我是用python写过的,不是说了闲来无事的嘛,用java写写又怎么滴? 首先说说爬虫思路: 1.找到需要爬取的网页。 2.分析网页上面的html元素 3.爬取解析自己想要的信息 话不多说,直接开干。 我觉得大家应该都比较关心房价的,那我们就从链家爬取房...原创 2018-03-13 21:30:49 · 724 阅读 · 0 评论 -
浅谈Java8的HashMap的扩容策略
PS:本文基于JDK8的源码进行分析前几天看到一个问题HashMap是先扩容后插入还是先插入后扩容?这样选取的优势是什么?,恰好自己最近在看了一下HashMap源码,答案是:先插入后扩容。对后面一个问题感觉有点懵我刚开始想的是,如果先增加数据总量,万一数据还没有完全写入,就被读取那就就是读取到脏数据(多线程并发读取写入)。又一想,HashMap本来就是线程不安全的,并发用HashMap的简...原创 2018-03-30 11:46:42 · 6444 阅读 · 5 评论 -
Java三大特性之继承
Java三大特性:封装,继承,多态。记住这个三个关键词。每次我都要强调。这篇文章讲继承。封装、多态可以查看其余两篇文章。Java三大特性之封装Java三大特性之多态什么是继承?通俗一点讲,子类拥有父类的部分特性,这个特性包含数据结构和方法。 上一组代码public class Animal { public String name; public Stri...原创 2018-03-21 18:55:58 · 474 阅读 · 0 评论 -
Java三大特性之多态
Java三大特性:封装,继承,多态。请记住这三个词语,重要的事情说三遍。封装和继承查看我之前的文章。Java三大特性之封装Java三大特性之继承其实不是很想写多态的,自认为能力不够,无法解释清楚多态优越性,或者说为什么Java会有这种特性能做什么的,对于初学者来说,Java三大特性好像体现不出什么优势的。但我还是厚着脸皮写了,三大特性需要写完的,不能半途而废。什么是...原创 2018-03-26 12:04:27 · 432 阅读 · 0 评论 -
基于Java8的抽象类和接口的区别
抽象类和接口有什么区别?这是一个出现频率非常高的问题,也是很容易忽略的问题。很多人可以凭借强悍的实战经验总结出来,但这种总结往往带有一些不完美。相同点:都不能被实例化。 不同点:1.接口都是抽象方法,抽象类可以拥有方法实体。2.类只能单继承(extends),但是接口可以多继承(extends)。3.抽象类可以拥有各种数据类型,接口数据只能是静态(static)的常量(final)。我相...原创 2018-04-09 11:52:04 · 1298 阅读 · 0 评论 -
基于Java8的ArrayList常用方法详解
在Java里面ArrayList算得上是一个常用的数据结构,同时也是一个线程不安全的数据结构。构造函数 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } public ArrayList(int initialCapacity) { ...原创 2018-04-02 17:40:37 · 1144 阅读 · 0 评论 -
Java之面向对象概述
初学Java的时候看过一个视频,视频中的老师说过这么一段话:对于那些拥有多年开发经验的开发者来说,怎么衡量彼此之间的能力?或者说怎么进行一个能力比较?开发者的能力这是一个很难定义的问题,事实上也无法给出衡量的标准,如果真的存在这么一种标准,唯一的可能就是对面向对象的理解深度了。刚开始入门学习的我,自然无法体会这段话的深意,但是现在回头再看这段话,确实有一定的道理。对面向对象理解深的一定开发能力...原创 2018-03-29 11:37:32 · 254 阅读 · 0 评论 -
maven打包成可执行jar,本地依赖包打包失败的问题
上一篇我们讲了,怎么用javadoc和Doclet配合解析自己想要的注释(链接)。既然是一个工具,自然就要生成可执行的jar包。这貌似是一个很合理的要求,然后坑就来了。 我上篇说的是直接复制的tool.jar到lib包下面,添加进资源包就可以了,但是maven项目肯定不能这样做的,这样不规范。我在网上去搜索了tools.jar的依赖教程。 <dependency> ...原创 2018-02-28 17:28:43 · 7644 阅读 · 0 评论