Java基础学习
Java基础知识学习笔记,涵盖集合、多线程、数据结构等内容
两鬓已不能斑白
这个作者很懒,什么都没留下…
展开
-
JAVA本地方法
以下内容转自:http://blog.csdn.net/lansine2005/article/details/5753741一. 什么是Native Method 简单地讲,一个Native Method就是一个Java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很转载 2016-08-25 19:44:49 · 412 阅读 · 0 评论 -
Java 反射机制学习Demo
Java 反射机制学习Demo1. 什么是Java反射机制? 反射机制是Java语言的一个关键性质,它允许我们在程序运行时,获取类的全部(包括private修饰的)成员变量和成员方法,并能动态地改变这些成员变量和成员方法。2.实例Demo新建一个ReflectTest 类,代码如下:ReflectTest.java:public class ReflectTe原创 2016-08-27 13:52:09 · 601 阅读 · 0 评论 -
Java String.intern()方法学习
Java String.intern()方法学习1. Demo代码 StringTest.java:/** * Java String.intern()学习 */public class StringTest { public static void main(String[] args) { String s0 = "asdf"; //字符串"asdf"被放到原创 2016-08-28 14:18:26 · 729 阅读 · 0 评论 -
Java 各类型的范围
Java 各类型的范围,留作参考public class Test { public static void main(String[] args) { byte byte_max, byte_min; short short_max, short_min; char char_max, char_min; int int_max原创 2017-07-21 16:36:13 · 618 阅读 · 0 评论 -
Java源码阅读之ArrayList
Java源码阅读之ArrayList 前言:网上有很多关于java源代码的文章,其中不乏逐行分析代码的大牛博文。本文不再赘述每行代码的意思,而是分析一些常用方法的代码段。这样,我们在编程的时候,就能了解函数背后运行的机制,使得我们程序设计得更为合理。1、知识汇总 ArrayList本质上是一个”动态数组”,能够动态申请内存。当存储空间不够时,能够自动扩容。由于底层是用数组实现的,所以Arr原创 2017-07-27 23:10:27 · 518 阅读 · 0 评论 -
Java源码阅读之LinkedList
Java源码阅读之LinkedList 前言:网上有很多关于java源代码的文章,其中不乏逐行分析代码的大牛博文。本文不再赘述每行代码的意思,而是分析一些常用方法的代码段。这样,我们在编程的时候,就能了解函数背后运行的机制,使得我们程序设计得更为合理。 ——如果事先知道容量大小,可以使用ArrayList。否则由于扩容的关系,建议使用LinkedList1、知识汇总 Linked原创 2017-07-28 00:05:04 · 411 阅读 · 0 评论 -
Java多线程学习笔记
Java多线程学习笔记1、继承Thread类 实现多线程的常用方法就是继承Thread类,然后覆盖run()方法。下面是实例代码:import java.util.Date;public class ThreadTest extends Thread{ @Override public void run() { // 重写run方法 System.out.prin原创 2017-07-29 00:04:22 · 766 阅读 · 0 评论 -
Java源码阅读之HashMap
Java源码阅读之HashMap知识汇总HashMap的结构如下,绿色框是一个数组,数组的每一个元素都是一个单链表的头结点。红色框就是一个单链表,单链表用来解决冲突,如果不同的key值映射到了数组中的同一位置,则将其放到链表中。HashMap中的结点重写了hashCode()方法和equals()方法,只有key和value都相等时,才认为两个结点相等,源码如下:static原创 2017-07-31 22:17:28 · 548 阅读 · 0 评论 -
java多线程售票小例子
java多线程售票小例子1、错误示范class SellThread implements Runnable { private int i = 20; public void run() { while(true) { if(i > 0) { try { Thread.sl原创 2017-08-11 10:24:06 · 2798 阅读 · 2 评论 -
java 向下取整和向上取整
转自:http://dilegencehe.blog.163.com/blog/static/43255413201111178523181/ 向上取整用Math.ceil(double a) 向下取整用Math.floor(double a) 举例: double a=35; double b=20; double c = a/b;转载 2017-08-12 09:02:30 · 1469 阅读 · 0 评论 -
java打印出当前时间小例子
java打印出当前时间小例子java打印时间的方法有很多,这里我写一个小程序留作存档,以后需要时查看比较方便 ~import java.util.Date;import java.text.SimpleDateFormat;public class Example{ public static void main(String args[]){ Date d = new Da原创 2017-08-12 10:41:14 · 3488 阅读 · 0 评论 -
面试总结:java程序执行过程 + JVM内存管理 + GC垃圾回收机制
java程序执行过程 +JVM内存管理 + GC垃圾回收机制1、Java程序执行过程一个java程序的编译和执行过程如下:.java ——编译——> .class类加载器负责加载各个字节码文件(.class)加载完.class后,由执行引擎执行,在执行过程中,需要运行时数据区提供数据补充:手动编译.javaMain.javapublic class Main { public sta原创 2017-08-17 19:15:26 · 16301 阅读 · 6 评论 -
java构造方法、静态变量初始化顺序的小例子
java构造方法、静态变量初始化顺序的小例子题目来自:https://www.nowcoder.com/test/question/done?tid=10095249&qid=56443#summary以下代码输出的结果是:class Singleton { private static Singleton obj = new Singleton(); public static i原创 2017-08-21 14:49:41 · 554 阅读 · 0 评论 -
Java常量池的大概理解
转载自:http://www.cnblogs.com/iyangyuan/p/4631696.html 触摸java常量池 Java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,小菜早就对常量池有所耳闻,这次好好总结一下。 理论 小菜先拙劣的表达一下jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令,这个太高深,小菜不转载 2017-08-25 08:59:58 · 578 阅读 · 0 评论 -
HashMap和Hashtable的遍历
HashMap和Hashtable的遍历 HashMap Hashtable keySet() keySet() entrySet() entrySet() value() elements() iterator iterator 此外,Hashtable还可以使用keys() 和Enumeration进行遍历,闲言少叙,直接上代码import java.u原创 2017-08-25 09:58:34 · 2195 阅读 · 0 评论 -
java写一个堆排序(大顶堆)
java写一个堆排序(大顶堆) 堆排序的时间复杂度,最好,最差,平均都是O(nlogn),空间复杂度O(1),是不稳定的排序堆(或二叉堆),类似于完全二叉树,除叶子节点外,每个节点均拥有左子树和右子树,同时左子树和右子树也是堆。 小顶堆:父节点的值 <= 左右孩子节点的值 大顶堆:父节点的值 >= 左右孩子节点的值堆的存储: 用一个数组存储堆就可以了,如【19, 17, 20, 18,原创 2017-08-28 12:22:13 · 3303 阅读 · 1 评论 -
Java - IP地址转为10进制数
Java - IP地址转为10进制数以192.168.1.2为例,把它转为10进制数的公式是:192 * 256^3 + 168 * 256^2 +1 * 256 + 2 * 1 = 3232235778相当于将IP地址看成256进制的数。由于乘法计算不如位运算快,因此对这个方法做如下改进:a = 192 << 24 b = 168 << 16 c = 1 << 8 d = 2 << 0 最原创 2017-08-28 19:31:31 · 5602 阅读 · 4 评论 -
List、Set、Map判断两个对象相等的标准
转自:http://blog.csdn.net/totally123/article/details/521621821、List 通过equals()方法比较返回true即可。2、HashSet 先比较两个对象hashCode()方法返回的值是否相等,如果不相等就认为两个对象是不相等的,如果两个对象的hashCode相等就继续调用equals()方法进一步判断两个对象是否相等,如果equa转载 2017-09-01 15:56:56 · 846 阅读 · 0 评论 -
用单链表实现快速排序
用单链表实现快速排序 前言:快速排序我们都知道,通过一个基准数字,一趟排序就将数据划分为两个部分:左边的部分小于这个基准数字,右边的部分大于等于这个基准数字。我们知道,实现快速排序的关键在于随机访问数据元素,所以,以往的快排都是基于数组实现的。但是在面试中,经常会遇到面试官要求我们用链表实现快排,那么,如何通过链表实现快排呢?我们设置两个指针 i,j,其中 i 初始时指向数组的第一个元素,j原创 2017-09-01 20:42:42 · 19427 阅读 · 7 评论 -
二叉树的先序、中序、后序遍历(递归 and 非递归)
二叉树的先序、中序、后序遍历(递归 and 非递归)递归好写,非递归需要用栈就难写了。。package lianjia;import java.util.*;public class Main{ // 先序遍历(递归) public static void preOrder(TreeNode root) { if(root != null) {原创 2017-09-01 22:35:33 · 420 阅读 · 0 评论 -
Java 访问权限(记忆帖)
Java 访问权限(记忆帖) 怕记不住, 本类内部 同一个包的类 子类 不同包的非子类 public √ √ √ √ protected √ √ √ default √ √ private √ 附:有关接口的权限1、接口中的方法默认是 public abstract接口需要被其他类实现原创 2017-09-02 14:17:09 · 328 阅读 · 0 评论 -
排序的时间复杂度(记忆帖)
排序的时间复杂度(记忆帖) 怕记不住稳定的排序 时间复杂度 空间复杂度 冒泡排序 平均O(n2),最好O(n) 1 插入排序 平均O(n2),最好O(n) 1 归并排序 O(nlogn) O(n) 桶排序 O(n) O(k)不稳定的排序 时间复杂度 空间复杂度 选择排序 O(n2) 1 希尔排序 O(原创 2017-09-02 14:34:19 · 3002 阅读 · 1 评论 -
Java二分查找(代码帖)
Java二分查找(代码帖) 怕记不住,/** * 二分查找 * @author lijialin * */public class Main { public static int binarySearch(int[] array, int k) { int left = 0; int right = array.length-1;原创 2017-09-06 15:50:22 · 513 阅读 · 0 评论 -
java面试中的各种“区别”(记忆帖)
java面试中的各种“区别”(记忆帖) 本文目录为: 1、ArrayList、LinkedList 2、HashMap、Hashtable 3、String、StringBuilder、StringBuffer 4、cookie、session 5、TCP、UDP 6、堆、栈 7、jre、jdk 8、final、finalized、finally原创 2017-09-06 21:05:59 · 758 阅读 · 0 评论 -
java线程生命周期图(记忆帖)
java线程生命周期图(记忆帖) 怕记不住 - 新建 new - 创建线程,为它分配系统资源,并进行初始化 - Thread t1 = new Thread(); - 启动一个线程用start()方法 - 就绪 (可运行)runnable - 只要调度器把时间片分给线程,线程就能运行 - 运行 running - 执行run()方法原创 2017-09-10 09:43:38 · 1259 阅读 · 1 评论 -
try中return某值,而finally中修改了这个值
try中return某值,而finally中修改了这个值本文按以下三方面进行实验try中无return、finally中无returntry中有return、finally中无returntry中有return、finally中有return最后总结1、try中无return,finally中无return 此时程序就是顺序执行,当执行func(10)时,首先执行try{…},然后执行原创 2017-09-11 10:56:55 · 1302 阅读 · 2 评论 -
java 传值与传引用小例子
java 传值与传引用小例子 java传值、传引用傻傻分不清,今天写了一个小例子,实践一下加深印象。先上结论:首先不管传啥,java都是传的副本对于基本类型变量 (int、long、double、float、byte、boolean、char),java传值的副本(相当于影分身之术)对于对象型变量(对象、数组),java传引用的副本(相当于仓库钥匙复制一份,但指向的还是仓库本身)/* *原创 2017-09-11 15:37:36 · 555 阅读 · 0 评论 -
HashSet中是如何判断元素是否重复的
HashSet中是如何判断元素是否重复的以下转载自:http://blog.csdn.net/ning109314/article/details/17354839HashSet不能添加重复的元素,当调用add(Object)方法时候, 首先会调用Object的hashCode方法判断hashCode是否已经存在,如不存在则直接插入元素;如果已存在则调用Object对象的equals方法判断是转载 2017-09-11 19:44:17 · 1778 阅读 · 0 评论