![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java语言基础
KarryChang.
三年的局点
展开
-
优先队列PriorityQueue
leetcode刷题是遇到一道按照二进制1的个数排列数组元素的题;* 给你一个整数数组arr。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。* 如果存在多个数字二进制中1的数目相同,则必须将它们按照数值大小升序排列。* 请你返回排序后的数组。一般我们都是通过函数 num &= num - 1来计算二进制中1的个数,这个肯定是可以的publi...原创 2020-02-23 23:02:57 · 277 阅读 · 0 评论 -
详解集合类
转载自:一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中转载 2017-03-06 15:02:49 · 362 阅读 · 0 评论 -
Spring框架IOC容器和AOP解析
转载自:http://www.cnblogs.com/xiaoxing/p/5836835.html主要分析点:一、Spring开源框架的简介 二、Spring下IOC容器和DI(依赖注入Dependency injection)三、Spring下面向切面编程(AOP)和事务管理配置 一、Spring开源框架的简介 Spring是一转载 2017-03-09 21:06:37 · 366 阅读 · 0 评论 -
Java 类加载机制
1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的转载 2017-03-12 14:21:35 · 465 阅读 · 0 评论 -
final关键字
转载自:http://www.cnblogs.com/chenssy/p/3428180.html在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。一、 final数据 有时候转载 2017-03-12 15:09:33 · 289 阅读 · 0 评论 -
Java堆内存栈内存
转载自:http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.htmlJava把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配转载 2017-03-15 20:37:33 · 505 阅读 · 1 评论 -
一些Java知识点的收集整理
Java内存模型:Java虚拟机规范中将Java运行时数据分为六种。1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间来实现的,为了线程切换后能恢复到正确的位置,每条线程都需要一个独立的程序计数器,互不影响,该区域为“线程私有”。2.Java虚拟机栈:线程私有的,与线程生命周期相同,用于存储局部变转载 2017-03-01 12:49:05 · 1889 阅读 · 3 评论 -
线程池知识点解析
Java线程池解析原创 2017-04-30 21:10:12 · 536 阅读 · 0 评论 -
GC的四种清理算法
标记-清除:这是垃圾收集算法中最基础的,根据名字就可以知道,它的思想就是标记哪些要被回收的对象,然后统一回收。这种方法很简单,但是会有两个主要问题:1.效率不高,标记和清除的效率都很低;2.会产生大量不连续的内存碎片,导致以后程序在分配较大的对象时,由于没有充足的连续内存而提前触发一次GC动作。复制算法:为了解决效率问题,复制算法将可用内存按容量划分为相等的两部分,然后每次只使用其中的原创 2017-05-31 23:13:30 · 3971 阅读 · 0 评论 -
Java内存模型
面试一个常考话题了,找了一些资料,总结一下,以作记录java内存模型(JMM)是线程间通信的控制机制.JMM定义了主内存和线程之间抽象关系。线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其原创 2017-05-31 23:20:42 · 266 阅读 · 0 评论 -
Java内存模型
转载自:点击打开链接 在Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。那么Java内存模型规定了哪些东西呢,它定义了程序中变量的访问规则,往大一点说是定义了程序执行的次序。注意,为了获得较好的执行性能,Java内存模型并没有限制执行引擎使转载 2017-07-20 22:06:49 · 301 阅读 · 0 评论 -
支付宝内推面经
刚才收到支付宝的面试电话时候,还在实验室里面写代码,赶紧出去找个楼梯坐下来,开始面试1,开始时候问你主要实习的时间,这个各自情况不同,自己说自己就行2,然后正式开始考语言特性:1,final关键字有什么作用可以参考 http://blog.csdn.net/cq340321/article/details/61618189关键点:不可变性,线程安全性原创 2017-03-14 12:31:51 · 3923 阅读 · 1 评论 -
深入了解Java虚拟机
转载自:http://blog.csdn.net/ns_code/article/details/17565503内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。转载 2017-03-04 22:12:16 · 355 阅读 · 0 评论 -
概念题刷题记录
JDK提供的用于并发编程的同步器有哪些?A SemaphoreB CyclicBarrierC CountDownLatchD Counter答案:ABCA,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许原创 2017-03-04 20:37:59 · 487 阅读 · 0 评论 -
Java 泛型 list <?extends animal>和 list <Animal>
原文来自stakeoverflow 链接:http://stackoverflow.com/questions/2575363/generics-list-extends-animal-is-same-as-listanimalThe difference between List and List<? extends Animal> is this: With Lis转载 2016-12-04 08:49:35 · 1310 阅读 · 0 评论 -
java中的volatile
转载链接:http://blog.csdn.net/zero__007/article/details/44080975一. volatite 简述 Java 语言提供了一种稍弱的同步机制,即 volatile 变量.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatil转载 2016-12-04 18:38:45 · 467 阅读 · 0 评论 -
HashMap源码解析
原文来自 http://blog.csdn.net/dyllove98/article/details/9207601 侵权删除package java.util;import java.io.*;public class HashMap extends AbstractMap implements Map, Cloneable, Serializable{转载 2016-12-06 08:39:47 · 351 阅读 · 0 评论 -
ArrayLis 与LinkList 区别
关键相同点:都是非同步的,所以不安全,如果要安全的话,可以使用vector。 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优原创 2016-12-06 19:56:28 · 2750 阅读 · 0 评论 -
关于匿名内部类的问题
匿名内部类是什么?如何访问在其外面定义的变量? 使用的形参为何要为final?为了避免引用值发生改变,例如被外部类的方法修改等,而导致内部类得到的值不一致,于是用final来让该引用不可改变。故如果定义了一个匿名内部类,并且希望它使用一个其外部定义的参数,那么编译器会要求该参数引用是final的。 匿名内部类如何初始化?一般都是利用构造器来完原创 2016-12-06 20:28:29 · 599 阅读 · 0 评论 -
并发与并行
并发(Concurrency):以可独立执行的进程集合的方式编程(进程是出了名的难定义,这里是通常意义上的进程,不是Linux进程)并行(Parallelism):以可同时执行的(可能相关的)计算指令方式编程。两者的区别:并发是同时处理(dealing)很多的事情,并行是同时做(doing)很多的事情。不同,但也相关。一个是关于代码结构,一个是关于代码执行。并发为可能的(不是必须的)并行问原创 2016-11-27 15:01:01 · 419 阅读 · 0 评论 -
idea for mac快捷键
把我最常用的快捷键总结一下:F6 标记shift+F6 显示所有标记option+enter 提示ctrl+O overridectrl+i implementctrl+shift+o 导入所有包shift+control+u 大小写转换command+E 显示最近的文档command+shift+E 显示最近修改的文档F2 shift原创 2017-02-27 23:20:56 · 282 阅读 · 0 评论 -
深入理解java序列化
转载自:http://developer.51cto.com/art/201202/317181.htm关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,d转载 2017-02-28 15:10:46 · 282 阅读 · 0 评论 -
Java多线程实现的三种方法
转载自:http://blog.csdn.net/aboy123/article/details/38307539最Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。转载 2017-02-27 21:23:05 · 249 阅读 · 0 评论 -
HashMap与HashTable比较
转载地址:http://www.importnew.com/7099.html HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别, 那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现转载 2017-02-25 10:44:44 · 1680 阅读 · 0 评论