java
上士闻道~勤而行之
这个作者很懒,什么都没留下…
展开
-
BigDecimal类的除法
BigDecimal类的除法原创 2022-10-21 13:04:54 · 271 阅读 · 0 评论 -
Java中从当前月往前取12个月的时间
Java中从当前月往前取12个月的时间原创 2022-10-18 13:07:43 · 1653 阅读 · 0 评论 -
Java中关键字throw和throws的区别
感谢博主的分享:https://blog.csdn.net/hjfcgt123/article/details/53349275抛出异常有三种形式,一是throw,一个throws,还有一种系统自动抛异常。下面它们之间的异同。一、系统自动抛异常当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常:(举个栗子)[java] view plain copypublic static...原创 2018-06-21 11:40:12 · 232 阅读 · 0 评论 -
Cookies和Session的区别
1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。注:为这个...原创 2018-06-12 15:39:55 · 750 阅读 · 0 评论 -
"=="和equals方法区别
1.==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此...原创 2018-04-08 09:52:48 · 131 阅读 · 0 评论 -
枚举类型
1.为什么JDK加入枚举数据类型?a.出于类型安全考虑。没有枚举类之前常用静态常量来表示,如 public static final MAN = 0; public static final WOMAN = 1; 这样的性别定义实际上是一个整型数据,完全可用来做加减运算,当然我们原意并非如此。b. 代码更优雅。枚举一般很少修改,意义更明确(相对于定义一堆变量来说)c.首先枚举...原创 2018-04-08 09:52:20 · 99 阅读 · 0 评论 -
public,private,protected,friendly作用域
说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。作用域 当前类 同一package 子孙类 其他packagepublic √ √ √ √protected √ ...原创 2018-04-07 13:01:15 · 185 阅读 · 0 评论 -
二维数组
public class CompoundInterest { /** * @param args */ public static void main(String[] args) { final double STARTRATE = 10; final int NRATES = 6; final int NYEARS = 10; double[] interestRate = ...原创 2018-04-07 13:00:53 · 190 阅读 · 0 评论 -
Overload和Override的区别
Overload是重载的意思,Override是覆盖的意思,也就是重写。重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,这也是面向对象编程的多态性的一种表现。在覆盖要注意以下的几点:1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效...原创 2018-04-07 13:00:29 · 98 阅读 · 0 评论 -
获取域名的Ip地址
import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.UnknownHostException;/** * 获取域名的Ip地址 * @author HuangLi * */public class InetAddressTest { publi...原创 2018-04-07 09:08:18 · 733 阅读 · 0 评论 -
BigInteger和BigDecimal
如果基本的整数和浮点数精度不能够满足需求,可以用java.math包中的两个重要的类:BigInteger和BigDecimal;BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。加、减、乘、除运算demo @Test public void BigDateTest(){ BigInteger bigInt = new BigInteger...原创 2018-04-07 09:06:14 · 203 阅读 · 0 评论 -
Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
一、正面解读: Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层的显示,Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作),Hibernate主要作用是数据的持久化到数据库。 SpringMVC是基于Spring的一个MVC框架,用以替代...原创 2018-06-22 11:47:22 · 211 阅读 · 0 评论 -
Java8新增的DateTimeFormatter与SimpleDateFormat的区别
两者最大的区别是,Java8的DateTimeFormatter是线程安全的,而SimpleDateFormat并不是线程安全。package com.main; import java.text.DateFormat;import java.text.SimpleDateFormat;import java.time.LocalDate;import java.time.LocalDateTim...转载 2018-06-29 22:59:10 · 5101 阅读 · 0 评论 -
数组链表hashmap底层
数组与链表的区别:数组是有序的,方便查询(数组下标是依次递增的,因此可以根据下标来进行二叉树查询)但是不便于新增或删除,每当插入或删除一个元素时,之后的元素就会重新排列位置获得新的下标。(思考:这是不是和索引很像?便于查询而不便于增删)。链表无序,除了一个链表头,其他全是依次依赖的关系,不方便查询(需要按位next()),便于新增删除,不需要排位置。数组原理的类有:arraylist...转载 2018-09-29 23:19:25 · 525 阅读 · 0 评论 -
面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FF...转载 2019-08-06 15:24:53 · 92 阅读 · 0 评论 -
Java 中的原子操作
写这篇博客起源于一道面试题 i++ 是不是原子操作?那到底什么是原子操作?所谓原子操作,就是“不可中断的一个或一系列操作”。在确认一个操作是原子的情况下,在多线程环境里,我们可以避免仅仅为保护这个操作在外围加上性能昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。Java中有哪些原子操作呢?查询资料后我总结出了以下几个:原始类型:原始类型(long和double的赋值操作在32位操作...转载 2019-07-31 09:23:29 · 78 阅读 · 0 评论 -
JDK1.8新特性: Collectors
一:简介Stream中有两个个方法collect和collectingAndThen用于对流中的数据进行处理,可以对流中的数据进行聚合操作,如:将流中的数据转成集合类型: toList、toSet、toMap、toCollection将流中的数据(字符串)使用分隔符拼接在一起:joining对流中的数据求最大值maxBy、最小值minBy、求和summingInt、求平均值averagi...转载 2019-04-18 09:55:32 · 955 阅读 · 0 评论 -
Java中instanceof关键字的理解
感谢博主:https://www.cnblogs.com/zjxynq/p/5882756.htmljava 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法: result = object instanceof class 参数: Result:布尔类...转载 2019-02-18 16:28:37 · 73 阅读 · 0 评论 -
SpringBoot配置RestTemplate的代理和超时时间
application.properties:#代理设置proxy.enabled=falseproxy.host=192.168.18.233proxy.port=8888#REST超时配置rest.ReadTimeout=35000rest.ConnectTimeout=5000代理配置类:import org.springframework.boot.context...原创 2019-01-20 22:13:25 · 3577 阅读 · 0 评论 -
分布式锁的一点理解
什么是锁 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的...转载 2018-12-05 13:55:52 · 79 阅读 · 0 评论 -
JAVA自定义注解使用
版权声明:本文为博主原创文章 http://blog.csdn.net/su20145104009 https://blog.csdn.net/su20145104009/article/details/52972692说到注解 在java中我们经常会看到@Override,@Deprecated,@SuppressWarnings这些注解。这些都是JDK自带的注解关于自定义注解:...转载 2018-11-10 23:00:12 · 119 阅读 · 0 评论 -
switch用法
public class Mange { public static void main(String[] args){ login(1); } //登录界面 public static void login(int num) { switch (num) { case 0: System.out.println(num); break; case 1: ...原创 2018-04-07 09:02:59 · 358 阅读 · 0 评论 -
方法参数
public class Employee { private String name; private double salary; public Employee(String n, double s){ name = n; salary = s; } public String getName(){ return name; } public double getSalary()...原创 2018-04-07 09:03:14 · 238 阅读 · 0 评论 -
在类的初始化中为什么需要构造函数
类是一种抽象结构,而不是一种实体,并不占用存储空间。所以在定义类结构体的时候,是不可以对类中的成员进行初始的。因为类型没有内存空间的,所以没有办法存放初始化的数据。而类的对象不同,需要容纳数据,占用空间。...原创 2018-04-06 09:42:24 · 2540 阅读 · 0 评论 -
shutdown方法和isShutdown方法区别
线程池中重要的两个接口:Executors,ExecutorServicepublic interface Executor { void execute(Runnable command); } public interface ExecutorService extends Executor { /** * 当线程池调用该方法时,线程池的状态则立刻变成SHUTDOWN状...原创 2018-04-06 09:43:13 · 3517 阅读 · 0 评论 -
Java的基本数据类型和应用数据类型
1.基本数据类型:byte:字节类型,Java中最小的数据类型,1个字节,取值范围-128~127,默认值0char:字符型,用于存储单个字符,2个字节,取值范围0~65535,默认值为空short:短整型,2个字节,取值范围-32768~32717,默认值0int:整型,用于存储整数,4个字节,取值范围-2147483648~2147483647,默认值0long:长整型,8个字节-2^63~2...原创 2018-04-05 21:17:42 · 1385 阅读 · 0 评论 -
静态变量和实例变量区别
1.静态变量加static修饰,实例变量没有;2.静态变量属于类,可通过类直接引用和通过对象引用,实例变量只可通过对象引用;3.静态变量在类加载时就会被分配存储空间,而实例变量是在创建时才被分配存储空间。...原创 2018-04-05 20:23:06 · 199 阅读 · 0 评论 -
ArrayList, LinkedList区别
a.ArrayList是实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构;b.对于大数据量的随机访问get和set,ArrayList要优于LinkedList,因为LinkedList要移动指针;c.对于需要大数据量的频繁添加(add)和删除(remove)操作时,LinkedList要比ArrayList快,因为ArrayList要移动数据。...原创 2018-04-05 19:24:51 · 86 阅读 · 0 评论 -
List,set区别
a.都继承Collection接口 b.List特点:元素有序存放,可重复,可通过for循环、增强for循环和Interator循环数据;可通过getIndex获取某个元素; set:无序存放,不可重复,只可通过Interator循环数据...原创 2018-04-05 19:31:23 · 138 阅读 · 0 评论 -
String,StringBuffer,StringBuilder三者区别
String对象不可变,如果改变则内存中会创建一个新对象,之前的对象会被GC;线程安全;StringBuffer对象内容可变,不进行创建和回收对象的操作;线程安全;StringBuilder对象内容可变;线程不安全;单线程;运行速度快慢为:StringBuilder > StringBuffer > String;...原创 2018-04-05 19:22:20 · 73 阅读 · 0 评论 -
substring,charAt,replace,replaceAll,startsWith解释
用junit可直接测试:@Test public void stringOpt(){ String str = "1e1ryrrtttab"; // substring(int beginIndex, int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。 System.out.println("*********"+str.substring(1...原创 2018-04-10 14:19:26 · 218 阅读 · 0 评论 -
abstract class和interface有什么区别
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为...原创 2018-04-09 22:12:01 · 84 阅读 · 0 评论 -
final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句: final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken!"); 有人在定义方法的参数时...原创 2018-04-08 09:51:59 · 100 阅读 · 0 评论 -
循环输出HashMap
@Test public void mapTest(){ Map<String,String> map = new HashMap<String,String>(); map.put("1", "2"); map.put("w", "r"); map.put("e", "4"); //方法一 HashMap entrySet原创 2018-04-06 09:41:26 · 1129 阅读 · 0 评论 -
HashMap,HashTable,ConcurrentHashMap
HashMap:线程缺省时非安全;继承AbstractMap;HashTable区别:线程安全,每个方法是synchronize;继承Dictionary;ConcurrentHashMap:实现了HashMap的同步类,JDK1.7使用分布式锁设计,JDK1.8使用CAS算法....原创 2018-04-06 10:39:19 · 177 阅读 · 0 评论 -
跳出双层for循环方法
public void arrTest(){ //方法一 ok: for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { System.out.println("i=" + i + ",j=" + j); if(j == 5) //当j==5时跳出双层循环 break ok; } } Syst...原创 2018-04-07 09:03:46 · 3674 阅读 · 0 评论 -
内部类
public class Outer { int out_x = 0; public void method() { Inner1 inner1 = new Inner1(); class Inner2 { //在方法体内部定义的内部类 public void method() { out_x = 3; } } Inner2 inner2 = new Inner2(); ...原创 2018-04-07 09:04:00 · 98 阅读 · 0 评论 -
ServerSocket和Socket模拟打电话
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ServerClientTest { /** * @param args */ pub...原创 2018-04-07 09:04:12 · 276 阅读 · 0 评论 -
数组初始化
数组定义:数组是一种数据结构,用来存储同一类型值的集合。声明数组两种方式,声明数组时需要定义数组类型和数组名称:1. int[] a;2.int[] a = new int[100];demo:public void arrTest(){ int[] a = {12,23,2,24,3};//声明方式1 //循环输出数组方式1 for(int i = 0;i < a.length; i...原创 2018-04-07 09:05:06 · 134 阅读 · 0 评论 -
Integer与int的区别
1.int是java的八种基本数据类型之一,Integer是int的包装类;2.int的默认值为0,Integer的默认值为null;3.Integer可以有new的对象,通过对象可以操作一些类的属性和方法,而int则不可以。...原创 2018-04-06 10:42:01 · 85 阅读 · 0 评论