自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SeanMiao

做一个有技术追求的人

  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 覆盖equals时总要覆盖hashCode

如何某类覆盖了equals方法而没有覆盖hashCode方法,则该类无法和基于散列的集合正常运作,比如HashMap、HashSet、HashTable集合。举个例子:public class Main { static class PhoneNumber{ //定义一个电话号码类 private final int areaCode; p...

2018-09-13 15:03:35 262

原创 重写equals需要遵循的约定

重写equals方法需要遵循三条主要约定:1、对称性:A.equals(B)=true则B.equals(A)=true。2、传递性:A.equals(B)=true,B.equals(C)=true则A.equals(C)=true。3、一致性:A.equals(B)=ture,则一直保持不变。点Point对象:static class Point{ priv...

2018-09-12 15:14:23 489

原创 常用的两个List——ArrayList和LinkedList基础用法和比较

一 、ArrayList基础使用1、ArrayList结构:顾名思义ArrayList的结构就是数组型的List。2、添加元素:public class Main { public static void main(String[] args) { ArrayList<String> arrayList=new ArrayList<>(...

2018-09-10 23:22:02 301

原创 WeakHashMap基础使用

WeakHashMap的基础使用与HashMap类似,详细可以参考另一篇文章点击这里。但是区别在于WeakHashMap对key保留了弱引用,而HashMap对key保留了强引用(对于强弱引用可以参考这篇文章点击这里),所以只要HashMap在则key就一直在,而WeakHashMap中的key则可能会被垃圾回收:public class Main { public static v...

2018-09-09 23:09:10 809

原创 常用的Map——HashMap和LinkedHashMap

一、HashMap基础用法:public class Main { public static void main(String[] args) { HashMap<String,String> hashMap=new HashMap<>(); hashMap.put("s","Sean"); hashMap....

2018-09-09 22:01:27 421

原创 Java中的三大引用——强引用,软引用,弱引用

一、硬引用一般的引用都是硬引用,比如下面的例子,new Object()被object和obj硬引用,这就是硬引用,垃圾回收后被硬引用的对象不会被删除:public class Main { public static void main(String[] args) { Object object=new Object(); Object o...

2018-09-08 20:25:16 714

原创 Thread和Runnable实现多线程的区别

用一个购票的例子说明Thread和Runnable实现多线程的区别:一、Thread实现:public class Main { public static void main(String[] args) { new Mythread().start(); new Mythread().start(); } static c...

2018-09-07 15:52:36 559 1

原创 Interface的引用

Interface类似于父类,可以指向一个实现该接口的类,若需要用只属于实现类的方法,则需要强制转换。

2018-09-03 22:20:30 780

原创 求解木桶倒水问题

问题:现在有三个木桶容量分别为8,5,3升,最初容量为8升的木桶内装满了水,另外两个木桶内为空。三个木桶都没有体积刻度,现在需要将大水桶的8升水等分成两份,每份4升水。列出所有可行的方案。(附不能借助除这三个木桶的其他桶接水)思路分析:这个问题的思路和农夫过河问题的思路基本类似,只是问题的模型改变了,可以参考另一篇文章求解农夫过河问题C语言代码:#include<stdi...

2018-09-01 16:23:33 1853 1

原创 求解农夫过河问题

问题:一个农夫带着一匹狼、一只羊、一颗白菜要过河,只有一条船而且农夫每次最多只能带一个动物或物品过河,并且当农夫不在的时候狼会吃羊,羊会吃白菜,列出所有安全将所有动物和物品带过河的方案。思路分析:显然这不是一个最优解的问题,最容易想到的方法就是遍历了,设法用遍历列举出所有可能出现的情况,根据条件选取出其中所有正确的解路径。把每个状态看作一个节点的话,那么节点的子节点可以设计为4个,分别对应...

2018-08-31 12:09:09 23987 2

原创 Java泛型详解

一、泛型类首先定义一个简单的BBox类:public class BBox{ private String date; public void setDate(String date){ this.date=date; } public String getDate(){ return date; }}这...

2018-08-29 19:43:05 1777

原创 Java的基本变量对象的缓存

先看一段代码:public class Main{ public static void main(String[] args) { Integer a=24; Integer b=new Integer(24); System.out.println(a==b); Integer c=23; I...

2018-08-16 20:15:43 1331

原创 Java的装箱与拆箱简介

Byte与byte: Byte a= 23; //装箱,=Byte.valueOf((byte)23); byte b=a; //拆箱,=a.byteValue();Short与short: Short a=23; //装箱,=Short.valueOf((Short)23); short b=a; //拆箱...

2018-08-16 16:33:45 286

原创 IntelliJ IDEA的live templates

IDEA的在线模板live templates是非常好用的工具,能大大提高我们的开发效率先来看一个简单的live template的例子:输入fori然后可以看到提示,然后回车 可以看到出现了一个完整的for循环结构且i作为控制变量 用tab键依次补齐控制条件 这就是一个简单的IDEA自带的一个live template,是不是大大提升了写代码的效率呢?那是当然的 ...

2018-08-15 20:32:34 380

原创 IntelliJ IDEA的Debug使用

本文介绍一下idea的debug调试的使用新建一个Main类加以说明:添加了2个断点 点下debug按钮后弹出如下界面:程序停在了第一个断点处也就是第4行先说明一下这个界面一些按钮的功能吧:继续执行:执行到一下个断点再停暂停执行:就是暂停当前程序执行,添加延时函数效果更明显停止执行:终止整个程序的执行查看断点:可以看到断点的详细信息消除断点:点...

2018-08-14 16:20:54 309

原创 关键字transient

在序列化的使用中我们常常遇到这样的问题,对于某些类对象进行序列化传输时,它的某些属性不希望被序列化传输,基于保密等方面。这个时候我们只需要在不希望被序列化的属性前面加上transient关键字即可。举个例子:构建一个User类public class User implements Serializable { public String name; public ...

2018-08-12 15:40:41 150

原创 Java中父类与子类的构造器调用和私有变量及私有方法的继承问题

一、子类构造器都必须显示或隐式调用父类构造器众所周知,子类可以继承父类所有的变量和方法,但是有没有想过子类为何能继承它们,它们是凭空继承而来的么?当然不是,其实每当调用子类构造器new一个子类对象的时候,都要先调用父类的构造new一个父类对象,父类对象隐式的存在于子类中,子类是这样继承父类的变量和方法的,以我中有你的方式,所以子类构造器都必须显示或者隐式调用父类构造器,如果不能调用则该子类无效...

2018-08-12 11:06:57 2653

原创 Java中的单例模式防反序列化解决方案

一、readResolve()法首先构造一个可序列化的单例模式类public class User implements Serializable { private static final User instance=new User(); public String name; public int age; private User()...

2018-08-11 11:13:11 904 1

原创 Enum枚举详解和EnumSet、EnumMap使用

一、Enum枚举public enum Day { MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;}一个简单的测试类:public class TestEnum { public static void main(String[] args) { Day today=Day....

2018-08-09 10:26:45 11499 2

原创 《Effective Java》笔记二

第三条:用私有构造器或者枚举类型强化Singleton属性一、Singleton属性public class Student { public String name; public int age; private static final Student instance=new Student(); private Student() { ...

2018-08-08 00:06:55 105

原创 Java中的反射解释和利用反射破解私有构造器及私有方法

一、反射的概念解释:写一个类是把各属性、各方法、各构造器包装成目标类的过程。反过来看,通过一个确切的类把里面的个属性、各方法、各构造器解析出来的过程则是反射。二、反射举例分别获取类的构造器、属性、方法构建一个Student类如下:public class Student { String name; int age; private char sex;...

2018-08-01 21:16:45 1506

原创 《Effective Java》笔记一

第一条:考虑静态工厂方法代替构造器第一大优势在于,它们有名称,方便阅读。第二大优势在于,不必每次调用它们的时候都创建一个新对象。(存疑)第三大优势在于,它们可以返回原返回类型的任何子类型的对象。(父类可以指向任何子类)第四大优势在于,在创建参数化类型实例的时候,它们使代码变得更加简洁。第五大优势在于,更好封装类的内部,例如把类的构造器用private封装,让静态工厂内部调用构造器。...

2018-07-31 16:49:50 158

原创 Java中==和equals的区别

先上示例代码如下:String a="hello";String b=new String("hello");if(a==b){ System.out.println("a==b");}else{ System.out.println("a!=b");}if(a.equals(b)){ System.out.println(&

2018-07-31 09:09:07 90

原创 python中的变量与对象

在python中,一切变量都是对象的引用举个例子:a=3内部执行过程如下图: 如图所示,python内部分为3个步骤完成a=3的赋值操作:创建变量a创建一个对象(分配一块内存)存储值3将变量与对象通过指针连接起来基于此内部机制,故python在定义变量的时候无需先声明变量的类型,变量类型是在运行过程中根据对象类型自动决定的,在过程中可以改变变量的类型即使变量引...

2018-07-30 17:55:14 1270

原创 关于C-free找不到自定义头文件的问题

问题描述:在C-free新建了一个工程,然后自定义了一个头文件保存到了该工程的文件夹下面,也按提示将头文件添加到了Head File中,但是执行代码的时候依然出现No such file的问题。原因:这个傻傻的C-free都问了是否要添加进Head File,但是依然啥都不干,没有把该工程的文件夹路径添加进来。解决办法:导航栏选择<工程>然后选择<设置>。...

2018-07-26 21:01:15 4325

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除