随笔分类 -  java

摘要:JVM的垃圾回收机制,在内存充足的情况下,除非你显式的调用System.gc(),否则不会进行垃圾回收;在内存充足的情况下垃圾回收会自动运行。 一、引用计数算法 1.定义:引用计数算法会给对象添加一个引用计数器,每当有一个地方引用他的时候,计数器就加1;当引用失效的时候计数器值就减1。当计数器为0的 阅读全文
posted @ 2019-12-15 09:00 stone1234567890 阅读(1187) 评论(0) 推荐(0)
摘要:https://www.jianshu.com/p/efb58b7115bf?utm_source=tuicool https://www.nowcoder.com/discuss/110317 https://www.nowcoder.com/discuss/101712 阅读全文
posted @ 2019-04-20 19:10 stone1234567890 阅读(233) 评论(0) 推荐(0)
摘要:一、区别: 1.Integer是int的包装类,int则是java的一种基本的数据类型; 2.Integer变量必须实例化之后才能使用,而int变量不需要实例化; 3.Integer实际是对象的引用,当new一个Integer时,实际上生成一个指针指向对象,而int则直接存储数值 4.Integer 阅读全文
posted @ 2019-03-19 19:35 stone1234567890 阅读(21946) 评论(1) 推荐(2)
摘要:一、java容器 1.java容器类库中一共有两种主要类型:Collection和Map (1)Collection和Map的区别在于容器内每个槽所存储的元素的个数不同,Collection类型中,每个槽只有一个元素;Map类型中,持有key-value关联(key叫做键,value叫做值)像一个小 阅读全文
posted @ 2019-03-09 11:19 stone1234567890 阅读(171) 评论(0) 推荐(0)
摘要:1.java是如何管理内存的? (1)java的内存管理就是对象的分配和是释放问题。在java中,程序员你需要通过new 关键字为每个对象来申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在java中,内存的分配是由程序完成的,而内存的释放 阅读全文
posted @ 2019-03-09 10:14 stone1234567890 阅读(111) 评论(0) 推荐(0)
摘要:1.Java中的垃圾收集器相对于以前语言的优势是什么?、 (1)过去的语言要求程序员显示的分配内存、释放内存。程序在需要的时候分配内存,在不需要的时候释放内存。但是这种做法常常引起内存泄漏,即由于某种原因使得分配的内存始终没有得到释放。如果该任务不断重复,程序最终会耗尽内存并异常终止,至少使得程序无 阅读全文
posted @ 2019-03-09 09:39 stone1234567890 阅读(194) 评论(0) 推荐(0)
摘要:1.在java的I/O结构中,RandomAccessFile是比较不寻常的类,直接继承自Object类,并不属于Streams结构的一部分。 2.读取具有很多字节流的文本文件的时候,通常使用BufferedReader。 3.java中的IO流图。 (1)java 的IO操作中有面向字节(Byte 阅读全文
posted @ 2019-03-09 08:32 stone1234567890 阅读(198) 评论(0) 推荐(0)
摘要:一、传值与传引用 1.不管java参数的类型是什么,一律传递参数的副本。 在thinking in java中,明确指出,如果java是传值,那么传递的是值的副本,如果java传递的是引用,那么传递的是引用的副本。 2.java中变量分为两类: (1)对于基本类型变量(int ,long,doubl 阅读全文
posted @ 2019-03-08 20:18 stone1234567890 阅读(157) 评论(0) 推荐(0)
摘要:异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.Arithm 阅读全文
posted @ 2019-03-08 10:31 stone1234567890 阅读(1994) 评论(0) 推荐(0)
摘要:1.java整形变量078:在java数字里数字表达式前面加上0表示8进制,因为8进制里表示数字只有0-7,所以这里的表达式有错误。相对而言,077就是合法的,转换成10进制就是63(7*8+7=63)。 2.以下程序错误的是: short s = 1 ; s = s + 1 ; 这里s+1表示为i 阅读全文
posted @ 2019-03-07 13:20 stone1234567890 阅读(418) 评论(0) 推荐(0)
摘要:废话不说,直接看例子 为什么会出现这两种不同的情况呢? (1)是因为java使用了中间变量缓存机制,在执行自增运算的时候,会为每个自增操作分配一个临时变量。如果是前缀加(++i)会先自加1后赋值(给临时变量),如果是后缀加(i++),就会先赋值后加1,运算最终使用的并不是变量本身,而是被赋了值的临时 阅读全文
posted @ 2019-03-07 10:00 stone1234567890 阅读(818) 评论(0) 推荐(0)
摘要:一、静态代码块 1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块: 2.执行时机 静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,就会按照书写的顺序执行。 3.静态代码块的作用: 一般情况下,如 阅读全文
posted @ 2019-03-01 19:33 stone1234567890 阅读(12786) 评论(5) 推荐(6)
摘要:一、运行时数据区域 java虚拟机所管理的内存会包括下面的几个部分: 1.程序计数器:是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。一般情况下,字节码解释器工作的时候就是通过改变计数器的之来选取需要执行的字节码指令。 (1)每条线程都有一个独立的程序计数器,每个线程都有一个独立 阅读全文
posted @ 2019-02-28 17:02 stone1234567890 阅读(198) 评论(0) 推荐(0)
摘要:1.在java中字符串只以Unicode一种形式存在(不选择任何特定的编码,直接使用他们在字符集中的编号,这是统一的唯一的方法) 2.在java中,是指在JVM中,在内存中,在你的代码里声明的每个char,String类型的变量中。 JVM的这种约定是的一个字符分为两个部分:JVM内部和OS文件系统 阅读全文
posted @ 2019-02-28 16:40 stone1234567890 阅读(136) 评论(0) 推荐(0)
摘要:break 跳出循环; continue 继续循环,(不执行 循环体内continue 后面的语句,直接进行下一循环) return 跳出函数,返回调用函数 处。 如以下语句 int i = 0; while(1) // < . { // | i++; // | if( i % 2 ) //如果 i 阅读全文
posted @ 2018-09-16 08:24 stone1234567890 阅读(203) 评论(0) 推荐(0)
摘要:0.常见的编码表 ASC||:美国标准信息交换码,用一个字节的7位可以表示。 ISO8859-1:拉丁码表。欧洲码表,用一个字节的8位来表示。无法存储汉字,或者只取了汉字的一半使用 GB2312:中文编码表 GBK:中国的中文码表升级,融合了更多的中文文字符号。 Unicode:国际编码,融合了多种 阅读全文
posted @ 2018-09-15 11:16 stone1234567890 阅读(233) 评论(0) 推荐(0)
摘要:1.Java异常的分类和类结构图 1.Throwable是整个java异常体系的超类,所有的异常类都派生自这个类,包含Error和Exception这两个直接的子类,概括了所有能被当做异常跑出来的东西。 2.Error表示编译时错误,这些错误不需要费心去捕捉。 3.Exception表示所有java 阅读全文
posted @ 2018-09-15 09:06 stone1234567890 阅读(213) 评论(0) 推荐(0)
摘要:一、面向对象的概念 1.理解面向对象:(1)面向对象是相对于面向过程的语言 (2)面向对象和面向过程都是一种思想 (3)面向过程:强调的是功能行为 (4)面向对象是将功能封装进对象,强调具备了功能的对象 (5)面向对象是基于面向过程的。 2.面向对象的特点:(1)是一种符合人们思考习惯的思想 (2) 阅读全文
posted @ 2018-09-12 10:28 stone1234567890 阅读(152) 评论(0) 推荐(0)
摘要:一、简介(过段时间再写,多线程难度有点大) 1.进程:运行时的概念,运行的应用程序 2.线程:应用程序内部并发执行的代码段 3.线程的创建方式一:(1)继承java.lang.Thread类,子类覆盖父类中的run()方法,将线程运行的代码存放在run()方法中。(2)建立子类对象的同时线程也被创建 阅读全文
posted @ 2018-09-12 09:49 stone1234567890 阅读(158) 评论(0) 推荐(0)
摘要:一、多态 1.定义:某一类事物的多种存在形态 例如:动物中猫,狗。 猫这个对象对应的类型是猫类型 猫 x = new 猫(); 同时猫也是动物的一种,也可以把猫称之为动物。 动物 y = new 猫(); //这里注意:动物是猫和狗在具体事物中抽取出来的父类型,这个地方是父类型的引用指向子类对象 2 阅读全文
posted @ 2018-09-11 09:23 stone1234567890 阅读(140) 评论(0) 推荐(0)