![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
想学习大数据
这个作者很懒,什么都没留下…
展开
-
Java变量类型使用详解
在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ = value][, identifier [= value] …] ;格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。以下列出了一些变量的声明实例。注意有些包含了初始化过程。int a, b, c;// 声明三个int型整...转载 2018-11-26 10:11:14 · 224 阅读 · 0 评论 -
HashMap定义及源码解析案例详解
一、HashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的...转载 2018-11-29 14:00:26 · 378 阅读 · 0 评论 -
Java访问权限详细讲解
人在什么面前最容易失去抵抗力?美色,算是一个,比如说西施的贡献薄就是忍辱负重、以身报国、助越灭吴;金钱,算是另外一个,我们古人常说“钱乃身外之物,生不带来死不带去”,但我们又都知道“有钱能使鬼推磨”。除去美色和金钱,我认为还有一个,就是读者的认可——“二哥,你的文章真的很棒,我特别喜欢。希望能多多更新Java基础知识,真的是受益良多,就好像是在读王小波的散文,但又学了编程!”——你说,收到读...转载 2018-11-30 10:51:37 · 572 阅读 · 0 评论 -
Java并发编程-ReentrantLock样例详细解析
正文 ReentrantLock是Java并发包中提供的一个可重入的互斥锁。ReentrantLock和synchronized在基本用法,行为语义上都是类似的,同样都具有可重入性。只不过相比原生的Synchronized,ReentrantLock增加了一些高级的扩展功能,比如它可以实现公平锁,同时也可以绑定多个Conditon。可重入性/公平锁/非公平锁可重入性所谓的可重入性,就是可以...转载 2018-11-30 14:12:05 · 229 阅读 · 0 评论 -
Java中spring boot2集成ES案例详解
一:运行环境JDK:1.8ES:5.6.4二:学习内容如何构建spring-data-elasticsearch环境?如何实现常用的增删改查?如何实现对象嵌套也就是1对多这种关系?三:JAVA依赖环境根据spring-data-elasticsearch官网说明,我这采用的是3.0.6.RELEASE版本,spring boot采用的是2.0.1.RELEASE;4.0.0...转载 2018-11-28 14:16:40 · 689 阅读 · 0 评论 -
Java软件编程开发:Mybatis和Url路由详细解析
1.3 MybatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的J...转载 2018-12-03 10:12:49 · 700 阅读 · 0 评论 -
Java加载器中ClassLoader使用方法详细解析
ClassLoader 做什么的?顾名思义,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。字节码可以来自于磁盘文件 .class,也可以是 jar 包里的 .class,也可以来自远程服务器提供的字节流,字节码的本质就是一个字节数组 []byte,它有特定的复杂的内部格式。有很多字节码加密技术就是依靠定制 ClassLoader 来实现的...转载 2018-12-05 11:18:05 · 813 阅读 · 0 评论 -
Java编程中JFreeChart图表绘制类库巧妙利用JSP实现页面统计图
1 开发环境:1、eclipse(可替换)2、jfreechart-1.0.192 说明:(1) source目录:为 jfreechart的源码目录;不会的主要看这里。因为他的文档是收费的。(2) lib目录:为包目录,我们需要关注的包为 jfreechart-1.0.10.jar、 gnujaxp.jar和 jcommon-1.0.13.jar这三个包;(3)根目录下的 jfreech...转载 2018-12-06 09:11:16 · 694 阅读 · 0 评论 -
Java并发编程中volatile实现过程详细解析
首先并发编程有三大特性: 可见性,有序性,原子性。volatile关键字实现了前面两个特性。那么它是如何实现这两个特性的呢? 首先是可见性。可见性主要是让缓存,直接写穿透到主存中。然后另外的cpu 通过底层的硬件层面的嗅探,可以发现自己cpu本地的缓存已经失效。然后到主存中直接读取。现在让我们来看看,cpu里面的缓存具体和主存如何交互。 说道这里首先需要了解,计算机内部存储器结构。每个核中...原创 2018-12-04 09:25:39 · 216 阅读 · 0 评论 -
Java开发中Session和Cookie都有哪些区别?
1.背景介绍什么是CookieCookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web服务器保存在用户浏览器(客户端)上的小文本文件(内容通常经过加密),它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie 信息,可以看作是浏览器缓存。什么是SessionSession的定义很抽象,在不同的场合中ses...转载 2018-12-14 11:00:21 · 338 阅读 · 0 评论 -
Java二进制中0用法详解
题目内容:计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。现在,你的任务是写一个程序,输入一个整数,输出在32位二进制表达下它前导的零的个数。输入格式:一个整数,在32位的整数可以表达的范围内。输出...转载 2018-12-07 09:16:25 · 1515 阅读 · 0 评论 -
Java开发中SpringCloud+Hystrix服务容错详细解析
Netflix Hystrix — 应对复杂分布式系统中的延时和故障容错应用场景 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一种选择。Hystrix的内部处理逻辑构建Hystrix的Command对象, 调用执行方法.Hystrix检...转载 2018-12-14 14:16:26 · 223 阅读 · 0 评论 -
JVM中GC虚拟机使用方法详细解析
对象是否存活Java的GC基于可达性分析算法(Python用引用计数法),通过可达性分析来判定对象是否存活。这个算法的基本思想是通过一系列"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时(图论称之为不可达),则证明此对象是不可用的。无论引用计数法,还是可达性分析都离不开“引用”的概念。Java将引用分为...转载 2018-12-10 15:51:23 · 191 阅读 · 0 评论 -
Java开发中抽象类和接口都有什么区别?
在Java软件开发中抽象类和接口会有一个明显的区别,具体会有哪些区别呢?下文就两者的区别做了一个比较详细的描述。抽象类:1、抽象类使用abstract修饰;2、抽象类不能实例化,即不能使用new关键字来实例化对象;3、含有抽象方法(使用abstract关键字修饰的方法)的类是抽象类,必须使用abstract关键字修饰;4、抽象类可以含有抽象方法,也可以不包含抽象方法,抽象类中可以有具体的...转载 2018-12-27 08:48:21 · 810 阅读 · 0 评论 -
Java并发编程中的多线程是怎么实现的?
众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试中必问的题,一个好的Java程序员是必须对并发编程这块有所了解的。并发必须知道的概念在深入学习并发编程之前,我们需要了解几个基本的概念。同步和异步同步和异步用请求返回调用的方式来理解相对简单。同步:可以理解为发出一个请求后,必须等待返回结果才能执行后续的操作。异步:请求发出后,不需要等待返回结果,可以继续执行后续操作,异步...转载 2018-12-27 10:36:13 · 148 阅读 · 0 评论 -
Java开发中内存模型详细解析
Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到。但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着。网上已经有大量的博客,但是人家的终究是人家的,自己也要好好的去理解,去消化。今天我也来班门弄斧,说下Java内存模型。说到Java内存模型,不得不说到 计算机硬件方面的知识。计算机硬件体系我们都知道CPU 和 内存是计算机中比较核心的两个东...转载 2018-12-17 09:03:03 · 110 阅读 · 0 评论 -
Java开发中常见排序算法汇总
Java编程中的排序算法可以分为两大类:1、非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。2、线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定...转载 2018-12-27 15:07:23 · 181 阅读 · 0 评论 -
深入解析Java虚拟机
垃圾收集器手机算法是内存回收的方法论,垃圾收集器是内存回收的具体实现。并行:指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态并发:值用户线程与垃圾收集线程同时执行(但并不一定是并行的),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上。Serial收集器单线程收集器,也就是说是必须停止所有的工作线程,知道垃圾收集完毕。对于单CPU来说更加高效。所以适合运行于Client模...转载 2018-12-11 09:01:47 · 124 阅读 · 0 评论 -
Hashtable程序员面试五分钟被请出来了
你们可能会想,栈长这么菜的吗?5分钟都坚持不了?本文说起来会有点尴尬,毕竟这是栈长我曾经经历过的故事。那时候的栈长还真菜,每天写着 if/ for 及一些简单的业务逻辑代码,虽工作有些日子了,但技术水平还停留在刚毕业的起步阶段。记得,那是一个周末,栈长去某知名互联网公司面试,好像不到五分钟,我就被面试官亲切地赶出来了,当时我那个尴尬,内心深受打击。为什么会被赶出来?这道题我记得很清楚,我...转载 2018-12-17 11:22:16 · 581 阅读 · 0 评论 -
Java开发集合定义及案例详解
集合类的由来:JAVA是面向对象的,对象用来封装特有数据,对象多了就需要储存起来,当对象的个数不确定的时候,那么就用集合容器进行存储。集合的特点: 1.集合的长度是可变的 2.用于存储对象的容器 3.不可以存储基本数据类型体系: 集合容器因为内部的数据结构不同,有多种具体容器,不断的向上提取,形成了集合框架。 Collection接口: 常见的方法 1....转载 2018-12-28 10:01:31 · 367 阅读 · 0 评论 -
Java开发中巧妙实现将byte[]数组转化为String类型
很多人在Java编程时,总是喜欢用一下方法将数组转为字符串:(a为byte数组) String s=a.toString();可是每次返回的时候,新手看来返回的结果是乱码,比如说我,写RSA算法时,没有注意,就以为是解密出来的乱码(哈哈哈),但其实[B@1b6d3586 为栈地址值,这个时候要知道对于返回一个String对象,new一个是基本上不会错的,测试代码如下:1 S...转载 2018-12-28 10:36:46 · 37937 阅读 · 0 评论 -
Java并发编程代码详细解析
相信一部分Java爱好者已经具备一定的并发基础知识,在这里正巧遇到一种需求:查询数据库,根据查询结果集修改数据库记录,但整个流程是做成了一个schedule的,并且查询比较耗时,每两分钟执行一次,故需要在此基础上考虑性能消耗,sql优化可以提高一些系统效率,同样,多线程也可以…下面做个DEMO引出一些Java并发的实际应用场景:import java.util.ArrayList;impo...转载 2018-12-28 10:56:01 · 311 阅读 · 0 评论 -
巧妙的理解掌握Java内部类
01 前言昨天晚上,我把车停好以后就回家了。回家后才发现手机落在车里面了,但外面太冷,冷到骨头都能感受到寒意——实在是不想返回一趟去取了(小区的安保还不错,不用担心被砸车玻璃),于是打定主意过几个小时的“世外桃源”生活——别人找不到我,我也找不到别人,这种与世隔绝的状态非常适合读书写作。把厚厚的《Java编程思想》摆在桌子上,正襟危坐,认认真真地读起了第十章——内部类。尽管我已经非常耐心和用...转载 2018-12-28 14:31:39 · 158 阅读 · 0 评论 -
Java编程中基础反射详细解析
类的加载、连接和初始化1.1 类的加载当程序主动使用某个类时,如果该类还没有被加载到内存中,则系统会通过加载、连接、初始化这三个步骤对该类进行初始化。有时会把这一整个流程统称为类加载或类初始化。类加载指的是将类的class文件读入内存中,并为之创建一个 java.lang.Class 对象,也就是说程序使用任何类的时候,都会为其创建一个class对象。1.2 类的连接类被加载之后,系...转载 2018-12-12 09:42:03 · 163 阅读 · 0 评论 -
Java编程中Springboot的异常处理与自定义异常处理教程
元旦很快就到来了,提前祝各位元旦快乐,今天给大家分享一个工作中必用一个知识点,就是在Java开发中使用枚举构建自定义异常并应用于springboot的异常处理器。开始之前我先把这个案例的结构大致说明一下:1、使用idea创建一个springboot的Gradle/Maven项目,引入web模块即可(由于案例的重点是异常处理,所以跳过其他操作)。2、创建一个javabean,用来接收前台的参数...转载 2018-12-29 11:03:13 · 420 阅读 · 0 评论 -
Java开发Swing实战JFrame和JTabbedPane容器的用法详细解析
概述:项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。下面先从最基础的界面开始。/**@author: lishuai@date: 2018/11/26 13:51*/public class WeimingSyncApplets {public static void main(String[] args...转载 2018-12-18 18:00:16 · 1096 阅读 · 0 评论 -
Java开发中IO流的用法详细解析
练习一:在Java编程里统计一个文件calcCharNum.txt中字母‘A’和’a’出现的总次数。package com.test;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;//练习一:统计一个文件c...转载 2018-12-29 14:00:22 · 450 阅读 · 2 评论 -
Java教程--枚举类型使用方法详细讲解
在Java开发中枚举类型定义了一个枚举值的列表,每个值是一个标识符。例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY} 实际上,这个声明定义的类型是一个类,它有7个实例。因此,在比较两个枚举类型的值时,永远不需要调...转载 2018-12-24 11:53:53 · 347 阅读 · 0 评论 -
巧妙利用Java来实现链表结构
定义:Java编程语言中所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表链表优缺点:优点:易于存储和删除缺点:查询起来较麻烦下面我们用java来实现如下链表结构:首先定义节点类:package LinkTest;/**链表节点类@author admin/public class Node {private ...转载 2018-12-29 15:16:40 · 441 阅读 · 0 评论 -
Java开发要点本地日期时间与字符串的互相转换详细解析
之前介绍Calendar的时候,提到日历实例无法直接输出格式化后的时间字符串,必须先把Calendar类型转换成Date类型,再通过格式化工具SimpleDateFormat获得字符串。而日期时间的格式化恰恰是最常用的场合,这就很尴尬了,原本设计Calendar是想取代Date,结果大家还在继续使用Date类型,没有达到预期的效果。那么Java8重新设计的本地日期时间家族,为了彻底革了Dat...转载 2019-01-04 09:51:22 · 324 阅读 · 0 评论 -
Java多线程详细解析教程
1.原子性:一个操作或者多个操作,要么全部执行成功,要么全部执行失败。比如账户转账问题,A账户向B转100,A账户减去100元,B账户加上一百元,这两个操作必须具备原子性,才能保证数据的安全,所以需要锁来保证数据的原子性。2.可见性:当一个线程修改变量之后,其他线程能够立即看见修改到的值。比如有两个线程a,b,两个共有变量i,线程a修改了i的值,没有及时刷新到主存,线程b看到还是修改之前的...转载 2019-01-04 11:23:55 · 206 阅读 · 0 评论 -
Java线程池核心ThreadPoolExecutor的定义及用法
引出线程池Java线程是Java并发编程的基础,前面的文章里,我们的实例基本都是基于线程开发作为实例,并且都是使用的时候就创建一个线程。这种方式比较简单,但是存在一个问题,那就是线程的数量问题。假设有一个系统比较复杂,需要的线程数很多,如果都是采用这种方式来创建线程的话,那么就会极大的消耗系统资源。首先是因为线程本身的创建和销毁需要时间,如果每个小任务都创建一个线程,那么就会大大降低系统的效率...转载 2019-01-04 11:35:55 · 861 阅读 · 0 评论 -
Java开发中业务层入参校验详细解析
背景首先,我们达成以下共识:一个服务方法,如果入参太多,且基本为非pojo,会给调用方造成不必要的干扰。尽管可以把文档写的很完善,但还是建议使用pojo对多个参数合理封装。如下示例:@Datapublic class UserVo {private String username;private Integer age;private List hobby;}...转载 2018-12-25 09:41:16 · 2631 阅读 · 0 评论 -
Java集合类AbstractList一招巧妙实现equals()重写
题目内容题目内容很简单,就是Java中创建 ArrayList 和 Vector 集合,向两者添加相同内容的字符串,最后用 equals() 方法比较是否相等。这里就考察了 “==” 和 equals() 方法的知识点。这里我最开始以为输出为 false,但实验了一下,结果为 true!为什么呢?因为我不知道 ArrayList 和 Vector 的共同父类 AbstractList ...转载 2019-01-10 14:36:12 · 278 阅读 · 0 评论 -
Spring AOP前置通知实例讲解与AOP详细解析
一、引出问题 有个接口TestServiceInter,有两个实现方法TestService和Test2Service。他们都有sayHello(); 我们的需求是在调用这两个方法之前,要先完成写日志的功能;二、菜鸟的想法 我在各个实现类的sayHello()方法里面写上写日志的功能就是了。这样实现存在的问题:代码冗余。当所有实现类都要加上日志功能的时候,需要写很多重复代码。三、...转载 2018-12-26 09:09:51 · 275 阅读 · 0 评论 -
Java集合中HashMap日常问题及解决办法
前言 今天在学习Java中Session的时候,利用了Session可持久化保存服务器端的特性尝试做了一下用HashMap嵌套的购物车(没有将购物车的商品信息保存在数据库中),之所以做的这么麻烦是为了巩固之前学习的Map知识和锻炼逻辑能力,正好也在其中遇到了一个关于HashMap 的问题,在此做个小小的记录,方便日后查看。问题 服务器端保存购物车商品信息用的是HashMap嵌套,内层H...转载 2019-01-11 09:16:19 · 374 阅读 · 0 评论 -
零基础学习Java之Kotlin从入门到精通
学习Java一段时间后,熟悉了其中的各种各样的坑。习惯了C#的各种特性和语法糖后,再转到Java感觉比较别扭。最后本着反正Java也不是很熟悉,干脆再折腾折腾其他语言的破罐子破摔的心态,逛了一圈JVM语言,最终决定转Kotlin。为何选择Kotlin 项目遭遇人员变动,包括我在内就剩两个人开发,转型成本低,代码质量容易控制。 JVM语言。号称与Java 100%兼容。实际使用的确能...转载 2019-01-11 10:24:03 · 565 阅读 · 0 评论 -
Java开发中遇到异常的解决办法
异常:Bean named ‘org.springframework.transaction.interceptor.TransactionInterceptor#0’ is expected to be of type ‘org.aopalliance.aop.Advice’ but was actually of type ‘org.springframework.transaction.i...转载 2019-01-02 09:01:55 · 605 阅读 · 0 评论 -
Java开发中的Elasticsearch分词器的定义与用法一
在Java开发中无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizers , token filters。内置的analyzer将这些构建块预先打包到适合不同语言和文本类型的analyzer中。Character filters (字符过滤器)字符过滤器以字符流的形式接收原始文本,并可以通...转载 2019-01-02 10:05:27 · 4586 阅读 · 1 评论 -
Java学习小技巧,巧妙实现sunziren的单向链表
最近面试的过程中,发现有的公司的面试题考到了链表的逆序,这一块我正好不是特别清楚。于是打算把链表这一块好好的学习学习。在网上搜寻了众多的资料以后,了解到链表的核心是节点与节点之间的互相链接。 于是自己也写了一个单向链表的类,里面包括input插入方法,inputById按指定下标插入方法,deleteAll删除所有节点方法,deleteById按指定下标删除结点方法,showAll控制台查看...转载 2019-01-11 14:24:27 · 108 阅读 · 0 评论