![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
布尔bl
用双手编制代码
展开
-
1分钟,带你上手“Markdown”语法
前言Markdown 是一种轻量级的标记语言,有 John Gruber 以及Aaron Hillel Swartz 一起编写。Aaron Hillel Swartz 是一个极富传奇的黑客,有兴趣可以看看他的生平。由于 Markdown 轻量化,易读易写,网上支持者众多。Github 、掘金、简书、博客园、csdn 军支持该语法。所以,作为一个开发者,学习 Markdown 刻不容缓啊。语法...原创 2020-03-19 17:22:58 · 136 阅读 · 0 评论 -
如何设计一个优雅的RESTFUL的接口
show me the code and talk to me,做的出来更要说的明白我是布尔bl,你的支持是我分享的动力!一 、引入设计接口是我们开发人员的日常操作。当我们把接口交给前端人员时,是否有种拔剑出鞘的错觉。毕竟交付接口,我们的开发工作就阶段性完成了。不过,如果我们没有一个接口设计规范的时候,结果会怎样呢?我们来张图感受一下。二、REST2000年,一个年轻小伙子(Roy...原创 2020-01-19 08:06:01 · 330 阅读 · 0 评论 -
简简单单之Linux命令入门
show me the code and talk to me,做的出来更要说的明白GitHub 项目JavaHouse同步收录我是布尔bl,你的支持是我分享的动力!引入作为一名合格的后端开发人员,我们难免要在 Linux 环境下进入操作,查找问题,配置文件等等操作。因此,我觉得我们需要掌握简单的 Linux 命令。本文简简单单介绍一下 Linux 的常见操作,努力让读者在 Linux...原创 2020-01-13 14:55:10 · 143 阅读 · 0 评论 -
基础之Lamada和Stream的邂逅
show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力!引入是否有遇到看不懂身边同事代码的情况,是否有被面试官问到 Java 新特性不懂的情况。我掐指一算你大概是遇到的了 Lambda 表达式 和 Stream 流。为了解决上述情况,我特地献上一份关于 Lambda 和 S...原创 2020-01-03 11:13:51 · 147 阅读 · 1 评论 -
大白话讲工厂设计模式
show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力!引入我们经常听到工厂模式,比如说 Spring 用了工厂模式啦,面试也会被问到工厂模式等等,这见工厂模式是日常开发中比较重要的一种设计模式。其实工厂模式也是比较简单的一种设计模式,这年头似乎不了解工厂模式,你都不好意思...原创 2019-12-30 08:08:41 · 193 阅读 · 0 评论 -
Java的反射机制之反向抽烟
show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力!引入反射是一种不安套路处出牌的机制。通常我们接触的方式都是 “正射”,暂且起这个名字。虽然我们用的少,但是反射其实就在我们日常开发中。比如我们常见的空指针异常,或者是 Spring 的各种注解配置创建对象等等。正常操...原创 2019-12-27 00:40:29 · 136 阅读 · 0 评论 -
ThreadLocal快速了解一下
欢迎点赞阅读,一同学习交流,有疑问请留言 。GitHub上也有开源 JavaHouse 欢迎star1 引入在Java8里面,ThreadLocal 是一个泛型类。这个类可以提供线程变量。每个线程都有自己的变量。这意味着什么?每一个线程都有自己的资源,就像在现实生活中,每一个程序员都有自己的一个对象,不用去竞争,绝对的线程安全啊。那么 ThreadLocal 究竟怎么用呢?2 类的说...原创 2019-12-08 13:32:30 · 107 阅读 · 0 评论 -
你真的了解Object源码吗
欢迎点赞阅读,一同学习交流,有疑问请留言 。GitHub上也有开源 JavaHouse 欢迎star引入Object 应该是比较简单的源码了。现在我们来分析一下他。Object 是类层次结构的根。Java体系里面的每个类默认都有一个超类就是 Object。总之,所有对象,包含数组,都默认实现该类的方法。native 关键字因为 Object 类里面有很多地方都用到 native 关键...原创 2019-12-03 18:37:25 · 185 阅读 · 0 评论 -
Java并发之synchronized关键字和Lock接口
欢迎点赞阅读,一同学习交流,有疑问请留言 。GitHub上也有开源 JavaHouse,欢迎star引用当开发过程中,我们遇到并发问题。怎么解决?一种解决方式,简单粗暴:上锁。将千军万马都给拦下来,只允许一个人过独木桥。书面意思就是将并行的程序变成串行的程序。现实的锁有门锁、挂锁和抽屉锁等等。在Java中,我们的锁就是synchronized关键字和Lock接口。synchroni...原创 2019-12-01 00:34:57 · 135 阅读 · 0 评论 -
Java并发之volatile关键字
引言说到多线程,我觉得我们最重要的是要理解一个临界区概念。举个例子,一个班上1个女孩子(临界区),49个男孩子(线程),男孩子的目标就是这一个女孩子,就是会有竞争关系(线程安全问题)。推广到实际场景,例如对一个数相加或者相减等等情形,因为操作对象就只有一个,在多线程环境下,就会产生线程安全问题。理解临界区概念,我们对多线程问题可以有一个好意识。Jav内存模型(JMM)谈到多线程就应该了解...原创 2019-11-26 00:46:24 · 96 阅读 · 0 评论 -
Serlvet之cookie和session学习
HTTP 协议Web通信需要一种语言,就像中国人讲中文,欧美说英文,Web使用的HTTP协议,也叫超文本协议。使用HTTP协议的人分为两类:客户端和服务端。请求资源的角色是客户端,提供资源的是服务端。HTTP协议是一个很神奇的东西,他只负责说话,至于说了什么他也不知道。所以HTTP是无状态的协议。会话HTTP是没有状态,但是人们是有记忆的,人们想让HTTP记住某些东西,然后就提出几...原创 2019-11-21 14:39:11 · 157 阅读 · 0 评论 -
redis实现排行榜
1 前言实现一个排版榜,我们通常想到的就是mysql的order by 简单粗暴就撸出来了。但是这样真的优雅吗?数据库是系统的瓶颈,这是众所周知的。如果给你一张百万的表,让你排序做排行榜,花费的时间是十分可怕的。不如缓存吧,order by的时候强制使用索引。但是这样真的优雅吗?2 Redis的排行榜我们分析一下排行榜,一个用户一个排名,意味着要去重,这时我们会想到Java的一种数据结构...原创 2019-08-08 16:14:20 · 682 阅读 · 0 评论 -
dubbo整合springboot最详细入门教程
说明目前互联网公司,大部分项目都是基于分布式,一个项目被拆分成几个小项目,这些小项目会分别部署在不同的计算机上面,这个叫做微服务。当一台计算机的程序需要调用另一台计算机代码的时候,就涉及远程调用。此时dubbo就可以大展身手了。搭建工程idea新建工程后,删除src文件夹,然后在gradle文件中输入buildscript { repositories { m...原创 2019-07-05 07:42:17 · 388 阅读 · 0 评论 -
redis整合springboot的helloworld
引入依赖 compile 'org.springframework.boot:spring-boot-starter-data-redis'使用redis有两种方法1.JedisJedis jedis = new Jedis("localhost");2.RedisTemplate@Autowiredprivate RedisTemplate redisTemplate;如果...原创 2019-07-09 00:24:33 · 127 阅读 · 0 评论 -
springboot批量导入excel数据
1 背景小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea。2 介绍2.1 框架java本身并不支持读取excel,所有读取excel需要借助一些框架。目前有几种方式,1. Apache POI2. Java Excel API3. easyexcel这里主要讲解的是 Apache ...原创 2019-06-11 10:30:02 · 2517 阅读 · 4 评论 -
LinkedList源码
1 说明LinkedList是一个双向链表,继承看List接口和Duque接口。LinkedList不是线程安全,确保线程安全方法 List list = Collections.synchronizedList(new LinkedList(...))2 源码分析2.1 静态内部类LinkedList是一个链表,需要一个node类作为节点,因此他在内部构建了一个静态内部...原创 2019-06-13 23:35:30 · 82 阅读 · 0 评论 -
git操作实战指南
1 背景小白进入公司,进入日常多人开发,git的使用应该是新人要掌握的第一个技能。git是一个分布式数据存储库,分为远程存储和本地存储,本地存储的话,每一台计算机就相当于一个存储数据库,可以记录和存储代码2 使用本文以IDEA的git工具操作为例,结合日常开发,讲解如何git开发。2.1 情景1小白进入公司后,上司对他说,今天数据一下代码哦。小白说我就不(内心活动) 默默打开git图形...原创 2019-05-22 01:00:46 · 110 阅读 · 0 评论 -
从实践认识修饰符
#从实践认识修饰符##1 修饰符分类说到修饰符,大家都知道有private deafult protect public,说到它们的区别,相信大家脑海会出现一张图。 |同一个类|同包非子类|子类|不同包非子类-|-|-|-private|是|否|否|否default|是|是|否|否protected|是|是|是|否public|是|是|是|是那么怎么从代码层面解释呢,学...原创 2019-05-04 15:16:55 · 126 阅读 · 0 评论 -
git必会必知
1 前言git前身是BitKeeper,但是他不是开源软件,不符合当时开源趋势,于是就会有了开源的git,git开发只用了十天时间。目前git是公司开发必不可少的一个工具,用于多人开发的分布式版本控制软件。git是Linux内核,由c语言开发。2 工作流程一般工作流程如下:克隆 Git 资源作为工作目录。在克隆的资源上添加或修改文件。3 推送1、初始化,添加.GIT文件git...原创 2019-04-08 10:40:42 · 94 阅读 · 0 评论 -
Java线程入门第一篇
Java线程的状态有6种1、 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2、 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。(什么是就绪) 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处...原创 2018-12-22 23:20:34 · 83 阅读 · 0 评论 -
探寻hashmap
Hashmap源码1、 构造器: a)获得默认数组大小:1>>4 :16 b) 获得负载因子:0.75:衡量hashmap的空间使用程度 i.过大:使用空间更加充分,但是查找效率变低,即时间复杂度变大 ii.过小:hashmap数据过于稀疏,造成空间浪费,即空间复杂度变大...原创 2018-12-20 16:13:53 · 88 阅读 · 2 评论 -
Hibernate与mybatis比较
先说底层: Jdbc:全称java数据库连接,是java语言用来规范客户端如何访问数据库的程序接口。 一般步骤: 加载驱动程序 获得数据库连接诶 创建Statement或者PrepareStatement对象,实现增删改查 为了减少编写jdbc编写工作,提出了orm模型:hibernate和mybatis Hibernate是全表映射框架。 优点:对jdbc...原创 2018-12-14 14:44:35 · 105 阅读 · 1 评论 -
pdf修改目录
解决问题:pdf书籍没有目录或者目录不对,造成阅读障碍解决方法下载打开editplus,网上有教程,需要激活 打开豆瓣,找到相关书籍,找到目录,如下图,复制下来,粘贴到editplus 需要修改目录格式,如下图,我的做法,使用tab键,高手可以使用正则(望指教),得下图 下载pdf修改工具 https://pan.baidu.com/s/1j-WldcW6eU7xgXfQ8...原创 2018-12-04 12:06:25 · 2201 阅读 · 0 评论 -
5种exception(异常)
空指针(Java.lang.NullPointerException)1、他是啥(what):空指针是Java开发者的最常见的错误,看见就烦,通常原因是对象的属性没有值2、首先空指针的对象是对象(没毛病),不是基本数据类型,因为基本数据类型没有比赋值,编译器不会编译通过a)举个例子 结果3、Null值不是报空指针的原因结果4、去null值里面的东西(属性)才是报空指针的原因...原创 2018-12-28 17:13:08 · 667 阅读 · 0 评论 -
Java线程入门第二篇
Java线程通信方法0、(why)每个线程都有自己的栈空间,我们要线程之间进行交流,合作共赢。1、synchronized和volatile关键字a) 看下面的synchronized关键字b) 看下面的volatile关键字2、等待/通知机制:一个线程A调用对象的wait()方法,另一个线程调用线程B的notity()或者的notifyall()方法.a) 顺序打印奇数偶数p...原创 2018-12-24 22:51:39 · 81 阅读 · 0 评论 -
Linux必会必知
一、前言Linux作为一个开源系统,被极客极力推崇,作为程序员不来了解一下,那就亏了Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux...原创 2019-01-29 23:19:57 · 109 阅读 · 0 评论 -
解锁Spring框架姿势1
Spring介绍:Spring 框架是一个Java平台,它为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此您可以专注于应用程序的开发。Spring可以让您从“plain old Java objects”(POJO)中构建应用程序和通过非侵入性的POJO实现企业应用服务。此功能适用于Java SE的编程模型,全部的或部分的适应Java EE模型。Ioc(依赖注入...原创 2019-02-01 17:38:02 · 205 阅读 · 0 评论 -
简单谈谈栈
一、前言计算机程序离不开算法和数据结构,数据结构这门学科就是为了让计算机能够以更加高效,简单,便捷的方式来存储和使用数据而产生的。本文简单介绍栈(Stack)和队列(Queue)的实现二、图解三、线性表1、 顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素2、 链式存储结构:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以连续,也可以不连续,空间与内存没有线性...原创 2019-01-20 21:16:57 · 141 阅读 · 0 评论 -
移除链表元素
题目:移除链表元素描述:删除链表中等于给定值 val 的所有节点。输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5预备知识:思路:1、判断空指针2、增加虚拟头指针(知识点):预防head为一个值的情况,增加代码编写难度3、使用while循环判断val值Oj:https...原创 2019-01-25 09:54:15 · 104 阅读 · 0 评论 -
206 反转链表
题目:206 反转链表描述:输入:1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL预备知识:无思路:1、 一个节点找不到前节点2、 两个节点找不到前节点3、 三个节点可以找到前节点Oj:https://leetcode-cn.com/problems/reverse-linked-...原创 2019-01-25 09:53:35 · 109 阅读 · 0 评论 -
学会Markdown,写博客不愁
前言Markdown是一种轻量级的标记语言,有John Gruber以及Aaron Hillel Swartz一起编写。Aaron Hillel Swartz是一个极富传奇的黑客,有兴趣可以看看他的生平。由于Markdown轻量化,易读易写,网上支持者众多。Github、掘金、简书、博客园、csdn军支持该语法。所以,作为一个开发者,学习Markdown刻不容缓啊。快速入门(打怪)1.标...原创 2019-01-07 16:44:29 · 180 阅读 · 0 评论 -
markdown pad2 无法使用gihub Markdown在线风格,提示“请求被中止: 未能创建 SSL/TLS 安全通道
markdown pad2 无法使用gihub Markdown在线风格,提示“请求被中止: 未能创建 SSL/TLS 安全通道”首先要确认是否安装了.Net Framework 4.5以上,若没有,点此下载桌面新建txt, 重命名为123.reg,使其变成注册表,然后写入以下内容,双击运行即可。Windows Registry Editor Version 5.00[HKEY_LO...原创 2019-01-10 17:28:30 · 1972 阅读 · 5 评论 -
Java线程入门第三篇
Java内存模型(jmm)Why:保证多线程正确协同工作看图说明:文字解释:线程a和线程b通信过程,首先线程a把本地内存的共享变量更新到主内存中,然后线程b去读取主内存的共享变量,最后更新到自己的本地内存中###JMM涉及的特性以及规则特性1.原子性:操作不可中断,即一个线程操作不会被另一个线程影响特例:在32的操作系统中,long型不是原子性2.可见性:是指一个线程...原创 2019-01-05 00:33:44 · 85 阅读 · 0 评论 -
微信公众号接入
使用java+tomcat环境接入时,因为带有8080端口不能配置成功还有隐藏8080端口后成功隐藏方法:找到tomcat目录点击conf修改server.xml文件改成即将8080改成80即可!...原创 2018-02-11 21:03:39 · 201 阅读 · 0 评论