java基础
diligence-zpf
厚积薄发
展开
-
寻找迷宫中的最少步数的一个小算法
package algorithm;public class Algorithm2 {/** * * s 0 1 0 * 0 0 0 0 * 0 0 1 0 * 0 1 e 0 * 0 0 0 1 * * * 竖轴为x轴 * 横轴为Y轴 */ /** * 迷宫找最短路径 0代表平地,1代表障碍物,s代表起点,e代表终点 (起点和终点肯定也是0...原创 2020-02-23 12:36:20 · 423 阅读 · 0 评论 -
java中集合中的数据结构
转载原文地址原文地址转载 2019-11-24 22:10:08 · 453 阅读 · 0 评论 -
抽象类的意义
抽象的意义:对代码的维护和重用。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行...转载 2018-03-26 21:43:10 · 9291 阅读 · 1 评论 -
序列化的方式以及Serializable 和Parcelable 的区别
1.什么是序列化? 序列化就是将对象或者数据结构转化成特定的格式,使其可在网络中传输,或者可存储在内存或者文件中,反序列化则是相反的操作,将对象从序列化数据中还原出来。而对象序列化后的数据格式一般是二进制。对象/数据序列化的重点在于数据的交换和传输以及存储。2.Serializable 和Parcelable 的区别 2.1)java中序列化只需实现 java.io.Seri...原创 2018-04-02 22:36:52 · 294 阅读 · 0 评论 -
静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
1.静态属性和静态方法是否可以被继承?是否可以被重写?1)先说是否可以被继承public class One { //静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? public static String one_1 = "one"; public static void oneFn() { System.out.println...原创 2018-04-03 17:56:21 · 17621 阅读 · 9 评论 -
简单解析Integer.parseInt()方法
我看到这个知识点是java面试基础中的考点,所以自己为了以后面试打算自己过一遍。我看到别人博客上对源码直接是文字说明,我觉得效果不是很好,我这里直接代数测试这个源码运行流程。1.我带入一个正正整数 256 注意看注释中的数值 public static int parseInt(String s, int radix) { /* ...原创 2018-04-24 11:38:53 · 21671 阅读 · 1 评论 -
简单理解 :强引用 软引用 弱引用 幻象引用的区别
1.强引用(StrongReference) 我们常见的普通对象的引用 例如Object object = new Object(); 特点:只要强引用指向一个对象,就表明这个对象是”活的”,jvm宁可抛出OutOfMemoryError,也不会去回收这个对象。对于普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显示的将引用赋值为null,就可以被垃圾收集。...原创 2018-05-17 18:06:01 · 670 阅读 · 0 评论 -
java拷贝
1.为什么要拷贝java对象呢? 在某些情况下,我们需要保存当前对象的某种状态,那么我们需要将状态的值赋给一个新的对象。首先想到的是将变量一个一个的赋值给新对象,但是这样做如果变量多的情况下,会很麻烦。那么有没有好一点的办法呢?那就是通过拷贝的方式,来实现一次性将全部变量赋值。注意:我们常见的Object a=new Object();Object b;b=a;这种形式的代码复制的是...原创 2018-05-25 17:41:14 · 347 阅读 · 0 评论 -
StringUtils.isNotEmpty(String str)和StringUtils.isNotBlank(String str)的使用
自己在项目顺手写了一个用 != ” ” 来判断这个String 字符串是否为空字符串,自己回过头来一看,感觉很二逼。(不知道为啥当时自己没注意到 == 和equals的区别)StringUtils中有方法判断字符串是否为空,索性看了一下,人家是怎样实现的。StringUtils的源码地址176 /**177 * <p>Checks if a ...原创 2018-07-27 10:29:16 · 1767 阅读 · 0 评论 -
java基础
1.Object再带的方法有哪些? 1.equals 2.hashcode 3.clone 4.getClass 5.notify 6.notifyAll 7.wait 8.finalize 9.toString2.读写一个完整限定名的java方法,可自创,可被写java类中的方法。 ...原创 2019-05-22 09:18:16 · 184 阅读 · 0 评论 -
自动装箱的陷阱
1.最近在看深入理解java虚拟机这本书中看到了这个知识点,感觉很不错,就记录一下。包装类的 "=="运算在不遇到算数运算的情况下不会自动拆箱,以及它们的equals()方法不处理数据转型的关系。 @Test public void fn1() { Integer a = 1; Integer b = 2; Integer c = 3;...原创 2019-06-16 10:27:54 · 189 阅读 · 0 评论 -
java对象头分析
一:对象头介绍hotSpot虚拟机中,对象在内存中的存储布局可以分为三块区域:对象头(header),实例数据(Insrance Data)和对齐填充(Padding).HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据,如:哈希码(HashCode),GC分带年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳等等,这部分数据的...原创 2019-07-17 12:01:49 · 2700 阅读 · 1 评论 -
java内存分配机制及内存泄漏
× 目录介绍1.JVM内存管理1.1 JVM内存管理图1.2 Java采用GC进行内存管理。2.JVM内存分配的几种策略2.1 静态的2.2 栈式的2.3 堆式的2.4 堆和栈的区别2.5 得出结论2.6 举个例子2.7 调用 System.gc();进行内存回收3.GC简单介绍3.1 内存垃圾回收机制3.2 关于GC介绍3.3 如何监听GC过程...转载 2018-03-26 21:27:30 · 179 阅读 · 0 评论 -
对于java中多态的简单理解
1.多态实现的三个重要的要素: 继承 重写 父类指向子类的引用 2.多态的使用//父类public class Father { public void p () { System.out.println("father"); }}//子类public class Son extends Father { @Override p...原创 2018-03-22 10:19:25 · 154 阅读 · 0 评论 -
我所理解的ArrayList
public class MyArrayList<E> { Object[] array;// 数组 int size;// 数组中真实存在的元素个数 private static final int DEFAULT_ARRAY_SIZE = 10; public MyArrayList() { array = new Object[0]; }原创 2017-11-29 17:47:34 · 172 阅读 · 0 评论 -
java中反射基本的方法以及使用
自己最近在学习中碰到有关反射的知识点,自己之前自学Java基础的时候还有印象,现在不怎么用,忘了一大部分,现在做个总结。 百度百科 这样介绍Java反射机制:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Demo地址 常用的Java反原创 2017-06-01 15:17:26 · 382 阅读 · 0 评论 -
java 中 += 和 =+运算的区别
int a = 1; a += 1; //这种方式与 a = (int )(a + 1);相同 System.out.println("a>>>>>>>>>"+a); int b = -1; b =+ 1;//这种方式 就是 赋值 b = 1; System.out.println("b>>>>>>>>>>"+b原创 2017-11-21 15:46:58 · 341 阅读 · 0 评论 -
java中synchronized的使用和理解
自己java基础的补充.1. synchronized修饰普通方法 2. synchronize修饰静态方法 3. synchron修饰代码块 1:synchronized修饰普通方法原创 2017-11-21 16:43:18 · 351 阅读 · 0 评论 -
String、StringBuffer、StringBuilder区别
1.String 字符串常量 String 是不可变对象,当我们每次改变String值时,每次改变都等同于生成一个新的String,然后指针指向新的String。所以我们频繁的改变String值时,会频繁的生成新的对象,生成多的无用对象后,jvm就开始gc回收无用的对象,速度就会变慢。所以我们在频繁改变String中的字符串时,应该尽量不要使用String。2.Strin...原创 2018-03-23 11:46:47 · 109 阅读 · 0 评论 -
关于 == equals hashcode之间的关系
java基础知识点回顾1.java中==和equals和hashCode的区别 1) == 是一个操作符 一般用来判断 基本数据类型(byte boolean short char int float long double ) 如果用于比较对象,两个对象指向同一个对象(引用完全相同)则为true,否则为false。 2) equals 是一...原创 2018-03-20 10:36:16 · 154 阅读 · 0 评论 -
泛型中extends和super的区别
首先来说:< ? extends T > 叫 上界通配符 < ? super T >叫 下界通配符 1. 下面用代码来说明上界通配符的一些特点public class Fruit {}public class Apple extends Fruit {}public class Banana extends F...原创 2018-03-29 20:29:31 · 1087 阅读 · 0 评论 -
父类的静态方法能否被子类重写
1.首先来说,一个方法如果被static声明后,这个方法就和这个类的对象脱离了关系,应该用类名点方法调用。但是如果非要使用对象来调用的话:如果父类中存在一个被static修饰的public方法,在子类中也存在被static修饰的public方法,这两个方法名字和方法参数相同,那么声明父类引用指向子类对象时,调用这个方法,其实是调用的父类的方法。 下面用代码来亲自体验一下public clas...原创 2018-03-30 09:49:31 · 3417 阅读 · 0 评论 -
进程和线程的区别
首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。下面细说背景:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。一个最最基础的事实:CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候怎么...转载 2018-03-30 17:01:36 · 122 阅读 · 0 评论 -
什么是内部类?内部类的作用
1.什么是内部类?可以将一个类的定义放在另一个类的内部,这就叫内部类。 -java编程思想2.嵌套类 如果不需要内部类对象与其外部类对象之间存在联系,则可以将内部类声明为static。这通常称为嵌套类。 注意:普通的内部类对象隐式的保留着一个引用,指向创建它的外围对象。3.内部类的作用 1.内部类提供了某种进入其外围类的窗口。 2.每个...原创 2018-03-24 23:05:24 · 4652 阅读 · 0 评论 -
int 和Integer的区别
2.int、char、long各占多少字节数 基本数据类: byte boolean 1个字节 short char 2个字节 int float 4个字节 long double 8个字节 3.int与integer的区别...原创 2018-03-21 17:47:07 · 178 阅读 · 0 评论 -
抽象类和接口区别及应用场景
区别如下:1.抽象类是对类的抽象(包括了属性和对应的行为). 接口是对某一个行为动作的抽象。2.抽象类只能单继承,接口可以实现多继承。3.接口中定义的方法不能实现,即使不显示的将方法声明为public,他们也是public。 抽象类中的方法可以部分实现。4.抽象类中可以被任意权限修饰符修饰,static/非static,final/非final,可以有抽象方法和非抽象方法。...原创 2018-03-25 23:22:36 · 2417 阅读 · 0 评论 -
final,finally,finalize的区别
final,finally,finalize的区别 final 是修饰符,修饰类(不可以被继承),修饰方法(不可以被重写),修饰变量(常量) finally 捕捉异常时,最终会执行的代码块。 finalize Object中的方法方法,在对象被回收之前,会被调用。...原创 2018-03-31 21:46:29 · 130 阅读 · 0 评论 -
单例模式
刚到北京没多长时间,找工作找的太急了,从投简历到上班,第4天收到一个小公司的offer,就直接上班了,有点后悔。这个公司做android开发的就我自己,况且我也是一个菜菜菜菜鸟。算了不说了,学吧。自己有实力了在找一个好一点的公司。 今天开始学习设计模式,今天先学习单例模式。 首先来说单例模式的场景:确保某个类有且只有一个对象,避免产生多个对象来消耗资源。比如说:访问IO和数据库,以及原创 2017-05-08 21:28:41 · 402 阅读 · 0 评论