自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 21. 移动的圆 lintcode

21. 移动的圆 (java实现)采用了递归的方式进行运算题目将给出两个圆A和B的圆心坐标(x,y)和半径r,现给你一个点P,使圆A圆心沿直线运动至点P。请问圆A在运动过程中是否会与圆B相交?(运动过程包括起点和终点)若会相交返回1,否则返回-1。样例样例 1输入:[0,0,2.5,3,2,0.5,0,2]输出:1主要思想:判断两个圆是否相交 r1-r2 <= dis <= r1+r2代码public class Solution { /** * @pa

2020-06-03 09:14:35 1099

原创 Java提供了哪些IO方式? NIO如何实现多路复用?

概念首先,传统的java.io包,它基于流模型实现,提供了我们最熟知的一些IO功能,比如File抽象、输入输出流等。交互方式是同步、阻塞的方式,也就是说,在读取输入流或者写入输 出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。java.io包的好处是代码比较简单、直观,缺点则是IO效率和扩展性存在局限性,容易成为应用性能的瓶颈。很多时候,人们也把java.net下面提供的部分网络API,比如Socket、ServerSocket、HttpURLConnection也归

2020-07-06 08:57:46 334

原创 Hashtable、HashMap、TreeMap学习心得

三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。(1) 元素特性**HashTable中的key、value都不能为null;HashMap中的key、value可以为null,**很显然只能有一个key为null的键值对,但是允许有多个值为null的键值对;TreeMap中当未实现Comparator 接口时,key 不可以为null;当实现 Comparator 接口时,若未对null情况进行判断,则key不可以为null,

2020-06-28 16:11:06 125

原创 对比Vector、ArrayList、LinkedList有何区别?

Vector、ArrayList、LinkedList均为线型的数据结构,但是从实现方式与应用场景中又存在差别。1 底层实现方式ArrayList内部用数组来实现;LinkedList内部采用双向链表实现;Vector内部用数组实现。2 读写机制ArrayList在执行插入元素是超过当前数组预定义的最大值时,数组需要扩容,扩容过程需要调用底层System.arraycopy()方法进行大量的数组复制操作;在删除元素时并不会减少数组的容量(如果需要缩小数组容量,可以调用trimToSize()方法);

2020-06-23 15:55:32 169

原创 int~Integer引申出来的世界

首先我们先了解下 在JVM模型中一个对象在内存中的存储布局布局一共有3块:对象头(Header)对象头一共有两个部分 MarkWord用于存储对象自身运行时的数据 ,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。这些数据会占用4字节的大小。第二个部分是类型指针,也就是记录指向类元数据的指针。大小也是4字节。实例数据(Instance Data)这个部分是对象真正存储的有效信息,就是在程序代码中所定义的各种类型的字段内容,无论是从父类继承下来的

2020-06-23 11:09:20 127

原创 反射与动态代理(AOP、cglib)概述

1 关于反射反射最大的作用之一就在于我们可以不在编译时知道某个对象的类型,而在运行时通过提供完整的”包名+类名.class”得到。注意:不是在编译时,而是在运行时。功能:•在运行时能判断任意一个对象所属的类。•在运行时能构造任意一个类的对象。•在运行时判断任意一个类所具有的成员变量和方法。•在运行时调用任意一个对象的方法。说大白话就是,利用Java反射机制我们可以加载一个运行时才得知名称的class,获悉其构造方法,并生成其对象实体,能对其felds设值并唤起其methods。应用场景:反

2020-06-22 16:51:24 327

原创 String、StringBuffer、StringBuilder三个跟字符串有关的类

1 String(1) String的创建机理由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果有则不需要创建直接从池中刚查找到的对象引用;如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入池中。但是,通过new方法创建的String对象是不检查字符串池的,而是直接在堆区或栈区创建一个新的对象,也不会把对象放入池中。上述原则只适用于通过直接量给

2020-06-22 14:00:41 208 1

原创 强引用、软引用、弱引用、幻象引用是什么

1 强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为 null,就是可以被垃圾收集的了,具体回收时机还是要看垃圾收集策略。2 软引用

2020-06-22 13:26:32 206

原创 谈谈final、finally、 finalize这三个大哥

final、finally、finalize这三个大哥虽然长得相似但是实际上所负责的功能却不一样。final可以用来修饰类、方法、变量。被修饰的类不能被继承,被修饰的变量是不可以修改的,被修饰的方法是不能被重写。finally则是Java保证重点代码一定要被执行的一种机制,一般用try-catch-finally来表示,在finally里可以进行关闭JDBC已经unlock解锁操作,这样可以保证资源能够被有效的回收。finalize是基类Object的一个方法,虽然现在在JDK9里不推荐使用但是设计

2020-06-19 09:17:20 155

原创 Java的Throwable类以及其异常子类

Java的Exception和Error类都继承自Throwable类。在java中只有Throwable类才能被捕获和抛出。而Exception和Error体现出了Java对于不同情况下的异常处理分类。Exception是在程序运行中可以预料的意外情况,并且可以被捕获和进行相应处理的异常。Exception分为RuntimeException(不检查异常)和IOException(可检查异常)。RuntimeException是所谓的运行时异常,常见的类有 NullPointException

2020-06-17 15:11:40 642

原创 Java是解释执行的语言吗?

其实这个问题问的有些笼统,首先对Java的运行机制进行分析。Java本身是一种面向对象语言。Java文件在运行的过程中先经过javac编译出字节码文件.class文件。之后通过Java虚拟机(JVM)内嵌的解释器将字节码文件转成机器码(可以在电脑上运行的代码)。但是在我们常用的JVM中我们所使用的Oracle JDK的HotSpot JVM中提供了JIT(Just-in-time)编译器,它的作用是能够在运行时动态的将热点代码编译成机器码。这种情况下就属于编译执行,而不是解释执行了。...

2020-06-17 13:44:28 282

空空如也

空空如也

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

TA关注的人

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