![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 64
MakeGreatEffort
这个作者很懒,什么都没留下…
展开
-
IDEA插件系列(13):Key promoter插件——快捷键显示提示
1. 插件介绍菜单和工具栏按钮的鼠标单击将启动快捷方式显示。2. 安装方式第一种方式是使用IDEA下载安装第二种方式是使用离线插件进行安装插件下载地址:http://plugins.jetbrains.com/plugin/4455-key-promoter/3. 使用方法安装成功后,只要是使用有快捷键的操作,都会有提示。...原创 2022-03-28 09:50:44 · 4125 阅读 · 0 评论 -
Tomcat部署时war和war exploded区别以及平时踩得坑
war和war exploded的区别在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:是选择war还是war exploded 这里首先看一下他们两个的区别:war模式:将WEB工程以包的形式上传到服务器 ;war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;12(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;(2)war exploded模式是直接把文件夹、jsp页面 、classes.原创 2022-03-14 09:24:47 · 2299 阅读 · 0 评论 -
Intellij IDEA 编译报错,忽略错误,运行
1.如何设置Intellij IDEA忽略部分类编译错误?2.为什么要在Intellij IDEA中使用Eclipse编译器?3.为什么Intellij IDEA设置忽略部分类编译错误?有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行。设置Intellij IDEA忽略部分类编译错误设置很简单,只需要两步即可。1、设置Java编译器如上图所示...原创 2022-03-08 18:34:31 · 7490 阅读 · 0 评论 -
IDEA GIT 操作
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:小张把分支合并到主干下面来看以上各场景在IDEA中对应的操作。场转载 2022-02-23 14:13:42 · 238 阅读 · 0 评论 -
多线程14:三大不安全案例
案例一:火车站买票思路:1.首先要有一个买票的类BuyTicket多线程要实现Runnable接口,重写run()里面是买票,2.买票就需要有票,定义一个票的变量 private int ticketNums = 10;3.写一个买票的方法buy():首先你得判断是否有票,if(ticketNums<=0),就停止return;4.否则就买票,直接ticketNums--就可以了。谁+拿到+第几张票5.然后需要一个循环,在while方法里面写,定义一个外部标志位,然后调用方原创 2022-02-23 13:53:19 · 2140 阅读 · 0 评论 -
mysql数据库什么情况下会锁表_mysql数据库锁的产生原因及解决办法
数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严 重影响应用的正常执行。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁原创 2022-02-23 10:58:48 · 7392 阅读 · 0 评论 -
BigDecimal中divide方法注意问题
BigDecimal中divide方法抛异常:Non-terminating decimal expansion; no exact representable decimal result在使用BigDecimal rate = new BigDecimal(1).divide(new BigDecimal(3));时抛异常:Non-terminating decimal expansion; no exact representable decimal result原来是在做除法转载 2022-02-15 10:06:20 · 481 阅读 · 0 评论 -
java之从字符串比较到==和equals方法区别
我们先看代码 String str1 = newString("hello"); String str2 = "hello"; System.out.println("str1==str2: "+ (str1==str2)); \\1 System.out.println("str1.equals(str2): "+ str1.equal...转载 2020-03-10 16:22:33 · 178 阅读 · 0 评论 -
eclipse代码质量检查插件SonarLint的正确配置及使用
SonarLint是eclipse的一个代码质量检查的工具,功能非常强大,可以让我们的代码写的更加规范,并且能检查一部分代码逻辑的错误安装SonarLint安装非常简单,直接去eclipse的Eclipse Marketplace,搜索SonarLint,安装。或者可以去http://www.sonarlint.org/ecli...官方网站下载,进行离线安装。SonarLint使...转载 2020-01-02 14:16:46 · 1111 阅读 · 0 评论 -
请求报错Required String parameter 'id' is not present
关于ajax请求spring后台出现 Required String parameter ‘id’ is not present异常,如果前端传入的是json数据那么后端使用@RequestBody HashMap<String, String> map进行接收,然后再通过map.get(“id”)获取对应的数据如果前端传入的是正常表单数据,那么后端使用@Request...转载 2019-11-12 21:51:59 · 981 阅读 · 0 评论 -
BaseController 的使用
为了提现代码的高可用性,我们可以常见的把dao层进行抽取,service ,但是很少看见有controller的抽取,其实dao层也是可以被抽取的。首先我们定义一个BaseController接口package com.zhan.common.controller.base;import com.zhan.common.domain.base.Identifiable;import com....原创 2018-04-24 12:51:21 · 32160 阅读 · 0 评论 -
HashMap HashTable ConCurrentHashMap
0. 前言HashMap和HashTable的区别一种比较简单的回答是:(1)HashMap是非线程安全的,HashTable是线程安全的。(2)HashMap的键和值都允许有null存在,而HashTable则都不行。(3)因为线程安全、哈希效率的问题,HashMap效率比HashTable的要高。但是如果继续追问:Java中的另一个线程安全的与HashMap功能极其类似的类是什么?同样是线程安...转载 2018-05-09 07:21:01 · 115 阅读 · 0 评论 -
Java中数据存储方式
Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表,数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时候需要有较大幅度的移动,所以查询速度快,增删较慢。而链表正好相反,由于空间不连续,寻址困难,增删元素只需修改指针,所以查询慢、增删快。哈希表是一种综合了数组和链表优势的数据结构。哈希表具有较快(常量级)的查询速度,及相对较快的增删速度,所以很适合在海量数据的环境中使用。一般...转载 2018-05-09 07:23:22 · 2282 阅读 · 0 评论 -
java中数据的5种存储位置
(1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。(2) 堆栈。驻留于常规 RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。 这是一种特别...转载 2018-05-09 07:25:39 · 14505 阅读 · 7 评论 -
下列哪种异常是检查型异常,需要在编写程序时声明?
下列哪种异常是检查型异常,需要在编写程序时声明? 答案是FileNotFoundException转载 2018-05-09 07:31:37 · 9914 阅读 · 1 评论 -
java 值传递跟引用传递在内存中怎么分配的
在以后的工作中,如果没有很好的掌握这两种传递方式,那么就会带了一些意想不到的问题.如果要很好的掌握他们的,必须要对其内部的结构,也就是内存存储位置有一个比较清晰的印象那么以后再写程序,不管遇到什么的程序,表现虽然不一样,但是内部结构(内存)的位置基本上不会有太多的变化.好了.废话不说了:第一种:值传递方式: 举个简单的程序[java] view plaincopypublic class Init...转载 2018-05-09 09:20:28 · 261 阅读 · 1 评论 -
关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树
二叉树的定义与性质,包括各种操作的源代码在本博客的的此处:二叉树二叉搜索树(Binary Search Tree)的定义性质以及源码实现在本博客此处:二叉搜索树平衡二叉树(AVL树),是一棵完全二叉树(PS:关于满二叉树与完全二叉树可以在堆排序中看到定义),其性质以及源代码的实现在本博客此处:平衡二叉树红黑树,是花时间最久理解的一个东西,只理解了其中的原理,其应用最经典的及时本博客前面讲的Apac...转载 2018-05-09 09:52:43 · 134 阅读 · 0 评论 -
java运行时异常与一般异常有何异同?
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形.应用程序不应该抛出这种类型的对象(一般是由虚拟机抛...转载 2018-05-10 08:50:09 · 151 阅读 · 0 评论 -
检查异常需要 try catch
.检查异常(编译器要求必须处置的异常) : 除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。SQLException sql语句异常...原创 2018-05-04 00:38:47 · 803 阅读 · 0 评论 -
Thread类的常用方法
String getName() 返回该线程的名称。void setName(String name) 改变线程名称,使之与参数 name 相同。int getPriority() 返回线程的优先级。void setPriority(int newPriority) 更改线程的优先级。boolean isDaemon() 测试该线程是否为守护线程。void setDaemon(bo...原创 2018-05-04 00:39:35 · 1450 阅读 · 0 评论 -
字节流和字符流判断
以InputStream(输入)/OutputStream(输出)为 后缀 的是 字节流以Reader(输入)/Writer(输出)为后缀的是 字符流原创 2018-05-04 09:08:40 · 528 阅读 · 0 评论 -
什么是守护线程?
前言守护线程(即daemon thread),是个服务线程,准确地来说就是服务其他的线程,这是它的作用——而其他的线程只有一种,那就是用户线程。所以java里线程分2种,1、守护线程,比如垃圾回收线程,就是最典型的守护线程。2、用户线程,就是应用程序里的自定义线程。守护线程1、守护线程,专门用于服务其他的线程,如果其他的线程(即用户自定义线程)都执行完毕,连main线程也执行完毕,那么jvm就会退...转载 2018-05-10 22:23:50 · 19795 阅读 · 0 评论 -
double 与float的区别
1.double型所表示的数据比float型更精确。 double 的 有效数据为16位,但是double消耗的数据为float的两倍。2.Java中的 一个小数,会默认为double类型的值。3.因此一个float类型的变量,赋值的时候一定要注意一点,所赋值的后面 一定 要加上字母F或f4.Double变量的赋值时可以所赋值的后面加上字符串D 或者小写d,也可不加。...原创 2018-05-10 23:59:53 · 4866 阅读 · 0 评论 -
Thread的 start() 和 run()区别
代码示例public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.start(); System.out.print("pi...原创 2018-05-11 00:09:20 · 170 阅读 · 0 评论 -
JAVA方法中的参数用final来修饰的效果
很多人都说在JAVA中用final来修饰方法参数的原因是防止方法参数在调用时被篡改,其实也就是这个原因,但理解起来可能会有歧义,我们需要注意的是,在final修饰的方法参数中,如果修饰的是基本类型,那么在这个方法的内部,基本类型的值是不能够改变的,但是如果修饰的是引用类型的变量,那么就需要注意了,引用类型变量所指的引用是不能够改变的,但是引用类型变量的值是可以改变的。 如下面的代码: pac...转载 2018-05-11 00:23:40 · 901 阅读 · 1 评论 -
影响序列化的两个关键字:transient 和 static
transient:这个关键字的作用就是忽略序列化操作,也就是说,当对象中的某个属性被加上了这个关键字后,这个属性就不会被序列化。这个就不在给出代码了,自己可以去尝试一下,int类型的变量被加上这个关键字后,你反序列化得到的结果是0,String的话得到的是null。这个就不过多的解释了。static:静态,这个要重点说说。静态的变量不属于对象,而是所有类共享的。所以,static变量也不能被序列...原创 2018-05-11 00:45:43 · 1740 阅读 · 0 评论 -
Java基类和派生类中方法的执行顺序
这篇文章主要介绍了Java基类和派生类中各种方法的加载顺序(常见于面试题),本文直接给出代码实例和运行结果,给后给出了加载过程总结,需要的朋友可以参考下。先放结论,总结如下:1. 构造类的实例对象前,先加载类本身。2.若要加载类A,则先加载执行其父类B)的静态变量以及静态语句块(执行先后顺序按排列的先后顺序)。然后再加载执行类A的静态变量以及静态语句块。(并且对于所有的A的对象,加载A(及B)只会...转载 2018-05-11 00:54:48 · 1023 阅读 · 0 评论 -
Error: could not open `E:\Program Files\Java\jre7\lib\amd64\jvm.cfg' 解决方法
javac java命令都是好用的,但java -version就提示【Error: could not open `E:\Program Files\Java\jre7\lib\amd64\jvm.cfg' 解决方法】错误。重装JDK后,因为没有装在以前的目录,运行java命令后报错,环境变量的设置都没有问题。解决方法:删除c:/windows/system32/目录下的java.exe 、...原创 2018-05-17 16:25:35 · 8828 阅读 · 2 评论 -
字节流和字符流的区别
字符流:当程序处理中文的时候,字符流是最方便的字节流:当程序处理二进制数据(图片、音乐、电影)或进行网络传输,或者保存到磁盘数据一定都是字节;字节流直接与操作终端进行交互,字符流需要经过缓冲区...转载 2018-05-05 07:58:11 · 186 阅读 · 0 评论 -
浅谈几种序列化协议
工作中用过几种知名的序列化协议,说说自己的感受吧,先独立讲各自的概念,然后比较下他们的优缺点。JSON(Javascript Object Notation) 官方网站是这样叙述的:一种轻量级的资料交换语言。易于人阅读和编写。同时也易于机器解析和生成。json有两种结构:1.名称/值,例如:{ "name" : "xiaoming", "age" : 12}你也可以再嵌套一层...原创 2018-04-27 11:39:37 · 1030 阅读 · 0 评论 -
@Value("${xxxx}")注解从配置文件读取值的用法
1. 用法:从配置properties文件中读取init.password 的值。@Value("${init.password}") private String initPwd; 2. 在spring的配置文件中加载配置文件dbconfig.properties :<!-- 加载配置文件 --> <bean id="configProperties" ...原创 2018-05-18 08:17:30 · 10643 阅读 · 0 评论 -
深入讨论阻塞与非阻塞、同步与异步的区别
一、概念异步:某个事情需要10s完成。而我只需要调用某个函数告诉xxx来帮我做(然后我再干其他的事情)同步:某个事情需要10s完成,我需要一直等它完成(等10s),再能继续后面的工作。阻塞:做某件事情,直到完成,除非超时非阻塞:尝试做,如果不能做,就不做(直接返回),如果能做,就做。前两者和后两者不容易区分,不过前两者更多的有涉及到多线程交互(消息)的场景。二、举个例子小李喝了想喝水,于是去煮开水...原创 2018-04-27 12:01:03 · 119 阅读 · 0 评论 -
Java高级程序员(5年左右)面试的题目集
1、常用设计模式单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。代理模式:动态代理和静态代理,什么时候使用动态代理。适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。装饰者模式:动态给类加功能。观察者模式:有时被称作发布/订阅模式,观察者模式定义了...转载 2018-04-27 12:20:01 · 7592 阅读 · 0 评论 -
vue单文件项目构建
VUE单文件组件在Vue项目中,然后使用 new Vue({el: '#container' }), 在每个页面内指定一个容器元素。使用Vue.component来定义全局组件,这种方式在小规模项目中还可以,但是在项目中有如下缺点:1. 全局定义:强制要求每个component中的命名不能重复。2. 字符串模板:缺乏语法高亮,在HTML有多行的时候,需要用到丑陋的 \3. 不支持css,意味着HT...转载 2018-05-18 13:19:34 · 1038 阅读 · 0 评论 -
Windows 下Nexus搭建Maven私服
1、 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队...转载 2018-05-13 10:53:19 · 121 阅读 · 0 评论 -
Nexus 私有仓库搭建与 Maven 集成
Nexus 私有仓库搭建与 Maven 集成|作者:RexFang|出处:http://www.cnblogs.com/rexfang/|关于作者:Java 程序员一枚|版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:fangruitao.work@foxmail.com Maven 是日常开发过程中,都会接触到的...转载 2018-05-13 10:59:27 · 208 阅读 · 0 评论 -
Gradle安装使用以及基本操作
阅读目录简单介绍安装使用idea创建一个web的Gradle项目如何进行打包解释build.gradle和settings.gradle有关gradle的jar冲突本地jar包位置和修改这两天看到越来越多的在接触Gradle,然后发现我之前没有做过记录,而且之后下个月的一些有关SpringBoot的东西也需要用到,所以这里就来记录一下,方便以后使用。 简单介绍Gradle是一个好用的构建工具使用它...转载 2018-05-13 14:12:50 · 1593 阅读 · 0 评论 -
freemarker页面如何获取绝对路径basePath
1. freemarker获取系统相对路径方式spring-mvc.xml 中配置<!-- FreeMarker视图解析 如返回userinfo。。在这里配置后缀名ftl和视图解析器。。 --><bean id="viewResolverFtl" class="org.springframework.web.servlet.view.freemarker.FreeMar...原创 2018-04-28 11:39:29 · 478 阅读 · 0 评论 -
在SSM下使用POI实现Excel表的导入/导出
导出就是将List转化为Excel(listToExcel)导入就是将Excel转化为List(excelToList)POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。我们知道要创建一张excel你得知道excel由什么组成,比如说sheet也就是一个工作表格,例如一行,一个单元格,单元格格式...原创 2018-04-29 23:11:28 · 1083 阅读 · 2 评论 -
内省
JDK 中提供了一套API 专门用于操作java 对象 的属性,它比反射技术更加操作更加简便,这就是内省,内省修改javaBean的属性及以及读取javaBean的属性。...原创 2018-04-29 23:11:52 · 107 阅读 · 0 评论