- 博客(32)
- 收藏
- 关注
原创 Java异常体系及处理
本文写作的主要原因是博主在项目中遇到异常时经常不知道如何处理,每次面对异常都block好久......特写此文来总结规范一下异常的处理方式。本文参考了网上好多文章,在这就不贴了。目录1.异常体系异常是指由于各种不期而至的情况,导致程序中断运行的一种指令流,如:文件找不到、非法参数、网络超时等。为了保证正序正常运行,在设计程序时必须考虑到各种异常情况,并正确的对异常进行处理。记住,处理异...
2020-01-02 21:03:10
294
原创 ASCII,Unicode,UTF-8 和 GBK
转自http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html。如果我也有想阮一峰一样的探究总结能力,一定会变得越来越好。简单来说,Unicode是最全的编码方式,囊括世界上所有的符号。UTF-8 是 Unicode 的实现方式之一,它主要采用了变长存储的方式解决了Unicode 存储空间过大问题。ASCI...
2020-01-02 20:50:38
241
原创 Lombok使用介绍
Lombok各注解使用@Getter和@Setter可以使用AccessLevel.PROTECTED配置访问级别为protected的属性的getter和setter。@NonNull表示相应的字段不能为null@ToString用来生成toString方法,所有的非static字段都会包括,也可以使用参数exclude来指定需要排除包含的字段,使用of参数指定需要输...
2019-12-05 21:05:14
815
原创 Spring默认使用的JSON工具--Jackson
一、Jackson介绍我们常用的json转换工具包括fastJson、Gson、Jackson等。其中Gson是Google所维护,功能全。fastJson特点是快,但是爆出几次的重大bug让人很难再去选择它。fastjson这么快老外为啥还是热衷 jackson?JackSon是Spring的御用工具,和Spring无缝集成,提供灵活的定制化开发的注解。如果使用Spring框架进行开...
2019-12-04 11:21:52
3064
原创 Java四舍五入保留小数位方法总结
Java中四舍五入保留指定位数的小数位作为一个使用非常频繁的技巧,值得记录总结下来。// 方式一:double f = 3.1516;BigDecimal b = new BigDecimal(f).setScale(2, BigDecimal.ROUND_HALF_UP);double f1 = b.doubleValue();String s1 = b.toString();/...
2019-12-02 15:58:45
839
原创 关于String及Integer等作为方法参数是否为引用的问题
基本类型的变体引用类型和String都不能直接当纯引用类型来用,比如Integer,Double等都是int与double的引用类型,但是你不能像普通引用类型那样直接对他的值做改变,因为在他们里面封装的原始int与double都用了final进行声明。所以你就算重新赋值了原始的int与double都不会改变。...
2018-09-08 17:33:46
1168
原创 redis学习总结
目录 一、NoSQL概述二、数据结构及常用命令三、redis持久化一、NoSQL概述NoSQL即(Not Only SQL),具有易扩展,大数据量高性能,灵活的数据类型,高可用的特点。二、数据结构及常用命令1、Redis 虽然是作为数据库开发的,但由于其提供了丰富的功能,越来越多的人将其用作:缓存、队列系统等。 缓存:Redis可以为每个键设置...
2018-09-08 09:31:57
411
1
原创 IDEA查找接口实现类及快速实现接口
查找接口的实现类:IDEA 风格 ctrl + alt +B IDEA快速实现接口快捷方式ALT +INSERT
2018-08-28 18:30:28
66147
3
原创 记idea上tomcat部署web项目遇到的两个问题
系统:centos6.8idea:ideaIU-15.0.6.tar.gztomcat:apache-tomcat-7.0.90一、报错: Server is not connected. Deploy is not available这个问题还会说什么1099端口不可用,查了好久,最终在https://blog.youkuaiyun.com/qq_16403141/article/detai...
2018-08-27 11:37:03
1631
原创 centos6.8启动防火墙失败解决方案
我是centos6.8的系统,在配置vsftpd的过程中,需要进行防火墙的配置,这时候遇到了问题。一、首先我的/etc/sysconfig/iptables这个文件并不存在,需要解决这个问题。1.任意运行一条iptables防火墙规则配置命令: iptables -P OUTPUT ACCEPT 2.对iptables服务进行保存: service iptables save...
2018-08-21 21:54:13
1861
转载 原码、反码、补码,计算机中负数的表示
原码:将一个整数,转换成二进制,就是其原码。 如单字节的5的原码为:0000 0101;-5的原码为1000 0101。反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。 如单字节的5的反码为:0000 0101;-5的反码为1111 1010。补码:正数的补码就是其原码;负数的反码+1就是补码。 如单字节的...
2018-08-10 09:22:09
2981
原创 Syntax error, parameterized types are only available if source level is 1.5解决方案
多次遇到这个问题,原因是你项目中的Project Facets中设置的java版本过低。我的myeclipse中的默认设置为1.4。修改方法为:在项目名称右键-->Properties-->MyEclipse-->Project Facets中,找到java,调高版本即可。如下图: ...
2018-08-08 21:13:01
1880
原创 多线程(三)内存可见性
一、共享变量在线程间的可见性二、synchronized实现可见性三、volatile实现可见性四、synchronized和volatile比较一、共享变量在线程间的可见性可见性:一个线程对共享变量值的修改,能够及时的被其他线程看到。共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。上面的工作内存其实是java内存模型抽象出...
2018-07-25 15:53:35
656
原创 多线程(二)线程交互之互斥与同步
首先我们通过一个有意思的案例来引入由于线程争用条件造成的一些严重的问题。下面的代码简单来说是初始化多个能量盒子,每个盒子所含初始能量相同,这样总能量就固定了。开设多个线程将这些盒子的能量相互转移,在转移过程就出现了问题。package disappearEnergy;/** * 宇宙的能量系统 * 遵循能量守恒定律: * 能量不会凭空创生或消失,只会从一处转移到另一处 */...
2018-07-21 17:22:09
570
原创 多线程(一)线程常用方法
一、Thread的构造方法常用的就前面的几个:1.Thread(Runnable target)。参数为实现了Runnable接口的类。2.Thread(String name)。参数为线程的名字。3.Thread(Runnable target,String name)。二、常用方法start:启动线程。yield:注意这是一个静态的方法。使当前运行线程释放处...
2018-07-20 17:19:07
552
原创 多线程(零)线程简介及状态切换
一、线程简介现代操作系统在运行一个程序时,会为其创建一个进程。现代操作系统调度的最小单元是线程,也叫轻量级进程,在一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉这些线程在同时执行。一个Java程序从main()方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,实际上Java程...
2018-07-20 14:35:38
228
原创 反射学习(五)通过反射了解集合泛型的本质
集合泛型本质上就是一个标准,即规定该集合只可以存泛型所规定的类型,否则编译无法通过。即泛型只在静态编译阶段起作用。通过方法反射可以绕过编译。public class MethodDemo4 { public static void main(String[] args) { ArrayList list = new ArrayList(); ArrayList<Stri...
2018-07-19 17:58:56
203
2
原创 反射学习(四)方法反射的操作及实际应用
一、方法反射的操作方法反射的流程:1.获取对象A的类类型a。2.调用a的getMethod方法获取方法类的方法对象m。tips:getMethod方法共有两部分参数,一部分为方法名,为字符串类型;一部分为方法的参数的类类型列表,可以形如int.class,int.class.......或者new Class[]{int.class,int.class}。3.调用方法对象m的inv...
2018-07-19 16:46:24
570
原创 反射学习(三)打印类的成员函数、成员变量、构造函数信息
Class类的基本API操作package com.reflect;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ClassUtil { /** * 打印类的信息,包括类的成员函数、成员变量(只获...
2018-07-19 15:34:55
458
原创 反射学习(二)java动态加载类
一 什么是动态加载类 什么是静态加载类 Class.forName 不仅表示类的类类型,还代表了动态加载类。编译时加载是静态加载类,运行时加载是动态加载类。请大家区分编译 运行。二.为何要使用动态加载类用记事本写了一个程序 并没有写A类和B类以及start方法 public class office { public static void main(String...
2018-07-19 11:58:07
216
原创 反射学习(一)class类的使用
1) 在面向对象的世界里,万事万物皆对象。(java语言中,静态的成员、普通数据类型除外) 类是不是对象呢?类是(哪个类的对象呢?)谁的对象呢? 类是对象,类是java.lang.Class类的实例对象 2)对象到底如何表示:以下代码段代表了三种表示方式1.知道类名,则可以使用 “Class c1 = 类名.class;” 来表示该类所代表的...
2018-07-18 22:09:01
272
原创 关于Maven的Pom.xml报错的解决办法
利用maven创建项目的时候,可能会遇到pom.xml文件报错的情况:(如下所示)这时候就在网上搜,终于找到了解决办法,如下:在C:\Users\43478\.m2文件夹下搜以lastupdate结尾的文件,所有该文件都删除,然后windows ———》Preferences--------->Maven4MyEclipse------》UserSetings————》Upd...
2018-07-18 15:32:07
6683
转载 Java的三种代理模式
转自:https://www.cnblogs.com/cenyu/p/6289209.html1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法...
2018-06-12 20:15:33
189
转载 数据库锁
转自:http://www.cnblogs.com/zhouqianhua/archive/2011/04/15/2017049.html1 前言 数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL ...
2018-05-21 15:57:44
228
转载 LeetCode - 371. Sum of Two Integers
在不准使用+和-的情况下实现两个整数的加法,那么肯定要用到位运算了。我们考虑位运算加法的四种情况:0 + 0 = 01 + 0 = 10 + 1 = 01 + 1 = 1(with carry)在学习位运算的时候,我们知道XOR的一个重要特性是不进位加法,那么只要再找到进位,将其和XOR的结果加起来,就是最后的答案。通过观察上面的四种情况我们可以发现,只有在两个加数的值都是1的时候才会产生进位,所...
2018-05-07 08:49:41
127
转载 Error executing DDL via JDBC Statement
转自:http://www.cnblogs.com/jinjiyese153/p/6902859.html1.问题描述: 启动hibernate测试案例时报错如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657org.hibernat...
2018-04-14 20:31:32
582
转载 volatile相关
来源于百度百科和一些博客。volatile是一个类型修饰符(type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。简单地说就是防止编译器对代码进行优化...
2018-04-09 20:21:01
126
原创 同步嵌套造成的死锁问题解析
解析:同步嵌套引起的死锁即若干锁把持着其它锁需要的资源,造成死锁。/* 目的:自己写一个由于同步嵌套引起的死锁! 思路:多个线程在执行时,某一时刻,0-Thread绑定了LockA锁,1-Thread绑定了LockB锁! 当0-Thread要去绑定LockB锁时 和 1-Thread要去绑定LockA锁时都不能绑定,此时两个线程不能继续进行!*/class Ticket implemen...
2018-04-09 16:05:24
1806
原创 抽象与接口
接口与抽象很多方面相似,下面列出其共同点。1.都不能创建实例对象,因为他们都是抽象的。2.虽然不能直接通过关键字“new”创建实例对象,但可以声明变量,通过变量指向子类或实现类的对象,来创建实例对象。两者也有不同点,如下所示。1.Java不支持多重继承,即一个子类只能拥有一个父类,抽象类也是如此。但一个子类可以实现多个接口。2.接口内不能有实例字段,只能有静态常量。抽象类可以有实例字段。3.接口内...
2018-03-11 21:56:13
222
转载 接口的功能及意义
转自:https://www.zhihu.com/question/20111251/answer/16585393接口就是个招牌。比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方...
2018-03-09 17:23:45
10922
3
原创 面试智力题:海盗分珍珠
题目描述:五个海盗编号分别为ABCDE,劫获了100颗珍珠。他们商量的分配方式为:由ABCDE五个人按顺序提分配建议,在所有活着的人中举手表决,超过半数的人同意(若为5人则需3人及以上同意,4人也需3人及以上同意)则按此提议分配,否则将此海盗杀掉,下一个人继续提分配建议。每个海盗都是足够聪明、贪婪且嗜杀的。问第一个海盗如何提建议才能保证不死并获得尽可能多的宝石?==================...
2018-03-09 16:12:31
1669
转载 java 中“==”与“equal” 的区别
http://blog.youkuaiyun.com/qq_33406883/article/details/52180154一、java当中的数据类型和“==”的含义:基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。复合数据类型(类):当他们用(==)进行比较的时候,比较的是...
2018-03-09 10:48:46
257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人