
Java
自动刷新
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java方法基础知识
第1章方法1.1方法概述在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。如:小明同学在路边准备坐车来学校学习。这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可采用坐公交车或坐出租车的方式来学校,那么,这种解决某件事情的办法,我们就称为方法。在java中,方法就是用来完成解决某件事情或实现某个功能的办法。方法实现的过程中,会包含很多条语句用于完成某些有意义...原创 2019-04-13 10:40:22 · 180 阅读 · 0 评论 -
操作系统提升文件读写性能的原理分析
当文件数据中有多个重复出现的元素时,可以使用某个特殊字符来替代,这样就又可以对文件进行压缩,常见的压缩软件就使用了这种方式,比如存储一个下面这样的字节流:11111122222333311111222221111我们可以将1111替换成 x,22222替换成 y,3333替换成z,那么我们就得到了这样一个字节流:x11yzx1yx从上面我们可以看出这种压缩大大缩减了空间,当我们解压文件时,...原创 2019-06-03 23:35:30 · 737 阅读 · 0 评论 -
StringBuilder介绍
有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串连接的方式达到此目的的效率比较低。每次连接字符串,都会构建一个新的String对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。...原创 2019-06-03 23:18:50 · 526 阅读 · 0 评论 -
堆溢出,栈溢出,内存泄漏,直接内存溢出以及异常信息整理
一、堆溢出创建对象时如果没有可以分配的堆内存,JVM就会抛出OutOfMemoryError:java heap space异常。堆溢出实例:public static void main(String[] args) { List<byte[]> list = new ArrayList<>(); int i=0; while(true){...原创 2019-06-09 16:00:10 · 3795 阅读 · 0 评论 -
对象访问的两种方式
对象的访问方式分为两种:1)通过句柄访问对象2)通过直接指针访问对象这两种对象访问方式各有优势,使用句柄来访问的最大好处是Java栈本地变量表中reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄中的实例数据指针,而reference本身不需要修改。使用直接指针访问方式的最大好处就是速度更快,它节省了一次指针定位的时间开销。...原创 2019-06-09 15:03:51 · 894 阅读 · 0 评论 -
栈的作用
栈栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的特点是先入后出。在计算机系统中,栈则是一个具有以上属性的动态内...原创 2019-06-09 14:39:08 · 12445 阅读 · 0 评论 -
数值类型乘除的优化位运算原理
1)<< : 左移运算符,num << 1,相当于num乘以22)>> : 右移运算符,num >> 1,相当于num除以2<<表示左移,如果该数为正,则低位补0,若为负数,则低位补0;<<表示右移,如果该数为正,则高位补0,若为负数,则高位补1;public static void...原创 2019-06-03 13:18:50 · 189 阅读 · 0 评论 -
栈,堆,方法区关系图
下面看这段代码在内存中的分配流程: package test01; public class StackHeadMethod { public static void main(String[] args) { int a = 1; // 在栈中分配内存空间 String b = "test...原创 2019-06-09 11:43:15 · 4843 阅读 · 6 评论 -
匿名数组的性能优势分析
匿名数组是一个没有名字的数组。示例如下:new int[]{11,32,44,52,17}这种表示法将创建一个新数组并利用括号中提供的值进行初始化,数组的大小就是初始值的个数。好处:1)节省了存储数组名字的空间。2)不再需要将对这个数组的引用赋给变量。如图所示:数组存储:匿名数组存储:3)使用这种语法形式可以在不创建新变量的情况下重新初始化一个数组。例如: a=new in...原创 2019-06-02 22:44:43 · 419 阅读 · 0 评论 -
数组存储压缩原理
Java数组是一种引用数据类型。数组变量并不是数组本身,而是指向堆内存中存放的数组对象。堆和栈的区别栈用于存储局部变量。数据使用完(程序退出局部变量作用域后),所占内存自动释放。堆用于存储数组和对象,通过new建立的实例都存放在堆内存中。每个实体都有内存地址值 。实体中变量都有默认的初始化值 。实体不再被使用,会在不确定的时间被JVM垃圾回收。数组在内存中...原创 2019-06-02 22:08:59 · 301 阅读 · 0 评论 -
抽象类与接口的对比
抽象类和接口的概念接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现...原创 2019-05-11 11:21:09 · 290 阅读 · 0 评论 -
二叉树的增删改查
首先建立Nodepublic class Node<T extends Comparable<T>> { private T date; private int index; private Node<T> lchile; private Node<T> rchile; public Node(){ } p...原创 2019-05-04 17:04:49 · 655 阅读 · 0 评论 -
单链表的增删改查
概述链表:通过一组任意的存储单元来存储线性表的数据,这组存储单元可以是连续或不连续的。每个节点包括:1)数据域(当前节点的数值)2)指针域(存储下一个节点的位置)各个节点通过指针域串起来,像一条链子,所以叫“链表”。单链表:每个节点只有一个指向直接后继节点的指针,所以叫“单链表”。链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个...原创 2019-05-04 16:53:13 · 2426 阅读 · 0 评论 -
ArrayList知识点总结
集合,集合是java中提供的一种容器,可以用来存储多个数据。我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢?1)数组的长度是固定的。集合的长度是可变的。2)集合中存储的元素必须是引用类型数据A:ArrayList集合使用*a.ArrayList集合存储5个int类型元素 public static void ...原创 2019-05-04 16:27:42 · 396 阅读 · 0 评论 -
构造函数,静态代码块,构造代码块执行顺序之案例究极大乱斗
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。构造函数public HelloA(){//构造函数 }关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的。2.构造函数的作用是用于给对象进行初始化。3.一个对象建立,构造函数只运行一次,而一般...原创 2019-04-14 14:15:16 · 226 阅读 · 0 评论 -
十进制数转换为二进制数以及浮点数存储方法
一、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后...原创 2019-03-22 15:45:26 · 36880 阅读 · 1 评论 -
快速排序法
快速排序简单的说就是选择一个基准元素,将比它小的数放在一边,比它大的还有与它相等的数放到另一边,此时基准元素在其排好序后的正确位置。再对这个数的两边再递归上述方法。【主要思想】如下:将两个指针i,j分别指向表的起始和最后的位置。反复操作以下两步:(1)j逐渐减小,并逐次比较j指向的元素和目标元素的大小,若p(j)<T则交换位置。(2)i逐渐增大,并逐次比较i指向的元素和目标元素的...原创 2019-06-04 22:07:07 · 241 阅读 · 0 评论