Java学习笔记
quentain
简单做人,勤奋做事!
展开
-
深入理解计算机系统9个重点笔记
转载:https://github.com/lanxuezaipiao/ReadingNotes/blob/master/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E6%99%AE%E8%AF%BB%E7%89%A9%E7%AC%94%E8%AE%B0/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6转载 2015-05-11 15:31:26 · 711 阅读 · 0 评论 -
Java结合中的HashSet
HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。HashSet具有以下特点:(1)不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化。(2)HashSet不是同步的,如果多个线程同时访问一个HashSet,假设有两个或者两个以上线程同时修改了HashSet集原创 2015-09-14 17:00:30 · 463 阅读 · 0 评论 -
Java中各Set实现类的性能分析
HashSet和TreeSet是Set的两个典型实现,到底如何选择HashSet和TreeSet呢?HashSet的性能总是比TreeSet好,(特别是最常用的添加、查询元素等操作),因为TreeSet需要额外的红黑树算法来维护集合元素的次序。只有当需要一个保持排序的Set时,才应该使用TreeSet,否则都应该使用HashSet. HashSet还有一个子类:Linked原创 2015-09-15 15:56:25 · 1927 阅读 · 0 评论 -
hashCode()方法对于HashSet是不是十分重要
hash(也被翻译为哈希、散列)算法的功能是,它能保证快速查找被检索的对象,hash算法的价值在于速度。当需要查询集合中某个元素时,hash算法可以直接根据该元素的hashCode值计算出该元素的存储位置,从而快速定位该元素。为了理解这个概念,可以先看数组(数组是所有能存储一组元素里最快的数据结构)。数组可以包含多个元素,每个元素都有索引,如果需要访问某个数组元素,只需提供该元素的索引,接下来即可原创 2015-09-14 17:45:47 · 578 阅读 · 0 评论 -
Java中各种线性表的性能分析
LinkedList与ArrayList、ArrayDeque的实现机制完全不同,ArrayList、ArrayDeque内部以数组的形式来保存集合中的元素,因此随机访问集合元素时有较好的性能;而LinkedList内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能较差;但在插入、删除元素时性能比较出色(只需要改变指针所指的地址即可)。需要指出的是,虽然Vector也是以数组的形式来存原创 2015-09-16 18:52:18 · 622 阅读 · 0 评论 -
Java8改进的HashMap和Hashtable实现类
HashMap和Hashtable都是Map接口的典型实现类,它们之间的关系完全类似于ArrayList和Vector的关系:Hashtable是一个古老的Map实现类,它从JDK1.0起就已经出现了,当它出现时,Java还没有提供Map接口,所以它包含了两个繁琐的方法,即elements()(类似于Map接口定义的values()方法)和keys()(类似于Map接口定义的keySet()方法)原创 2015-09-17 17:00:02 · 1218 阅读 · 0 评论 -
Java基础学习
标识符概念定义:Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符。 标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。通俗理解为:凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则。标识符组成Java标识符由数字,字母和下划线(_),美元符号($)组成。并且必须遵守以下规则:1.Java原创 2016-03-11 11:25:10 · 361 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务转载 2016-03-25 16:43:09 · 373 阅读 · 0 评论 -
ArrayList和LinkedList的操作性能对比
ArrayList和LinkedList都是实现了Collection和List接口,继承AbstractList的链表。ArrayList:List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于Vector 类,除了此类是不同步的。)转载 2016-05-10 18:11:05 · 558 阅读 · 0 评论 -
关于ArrayList的5道面试题
1、ArrayList的大小是如何自动增加的?你能分享一下你的代码吗?这是最有技巧性的的一个问题,大多数人都无法回答。事实上,当有人试图在arraylist中增加一个对象的时候,Java会去检查arraylist,以确保已存在的数组中有足够的容量来存储这个新的对象。如果没有足够容量的话,那么就会新建一个长度更长的数组,旧的数组就会使用Arrays.copyOf方法被复制到新的数组中去,现有转载 2016-05-10 18:15:22 · 1593 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch转载 2016-05-24 09:28:35 · 421 阅读 · 0 评论 -
Java虚拟机JVM内存分区及代码执行机制
1. JVM体系结构图1 JVM体系结构 方法区:存放JVM加载的类型信息。包括: 类型基本信息,常量池,字段信息,方法信息,类变量,指向ClassLoader的引用,Class类的引用,方法表等。(对应JVM内存配置中的-PermSize等)java堆:程序中创建的类的实例和数组,包括class对象和exception对象,存放在堆里面。堆中除了存储对象的实例数据外,还转载 2016-05-24 11:28:37 · 504 阅读 · 0 评论 -
Java中String、StringBuilder、 StringBuffer的理解
借鉴网上资料分析由一下几个方面分析:1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String2.String (StringBuffer,StringBuilder)的原因String:字符串常量StringBuffer:字符串变量StringBuilder:字符串变量从上面的名字可以看到,String是“字符原创 2016-05-11 13:53:26 · 470 阅读 · 0 评论 -
String、StringBuilder、 StringBuffer 深入分析 源码解析
转自:http://blog.csdn.net/qh_java/article/details/46382265java学习有一段时间了,但学习的东西都是框架等东西,java基础知识有点遗忘,所以重温一下java基础知识,写写文章里面有错的希望大家指正共同进步~~一、String 大家经常会说使用“+”号连接String 字符串比StringBuffer慢,String类对转载 2016-05-11 13:58:44 · 430 阅读 · 0 评论 -
多线程笔试面试总结(一)
主要题目类型:1.概念性题目 2,选择性题目,3.简答或综合性题目一.概念性问答题1. 线程的基本概念、线程的基本状态及状态之间的关系?解答:线程是一个进程内部的一个控制序列。进程至少有一个执行线程。线程是独立调度和分派的基本单位。注意fork()系统调用和创建新线程的区别。执行fork()系统调用时,复制父进程的一个副本,子进程是独立的一个进程,它的执行几转载 2016-05-25 21:21:30 · 1209 阅读 · 0 评论 -
android中MVP模式(一)
1. 明确需求,界面如下:可存,可根据id读取数据。包结构图2. 建立bean[java] view plain copy print?public class UserBean { private String mFirstName; p转载 2016-05-26 12:55:28 · 389 阅读 · 0 评论 -
HashMap循环遍历方式及其性能对比
转自:http://www.trinea.cn/android/hashmap-loop-performance/主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论。 1. Map的四种遍历方式下面只是简单介绍各种遍历示例(以HashMap为例),各自优劣会在本文后面进行分析给出结论。(1)转载 2016-05-04 14:26:15 · 450 阅读 · 0 评论 -
android ANR产生原因和解决办法
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户转载 2015-09-14 08:46:33 · 379 阅读 · 0 评论 -
Java中使用JAR文件
JAR文件的全称是Java Archive File,意思就是Java档案文件。通常jar文件是一种压缩文件,与常见的ZIP压缩文件兼容,通常也被称为jar包。jar文件与zip文件的区别: 在jar文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成jar文件时由系统自动创建的。 当开发了一个应用程序后,这个应原创 2015-09-11 11:03:55 · 423 阅读 · 0 评论 -
面向对象的基本特征
面向对象方法具有三个基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism),其中封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;继承是面向对象实现软件复用的重要手段,当子类继承父类之后,子类作为一种特殊的父类,将直接获得父类的属性和方法;多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行原创 2015-05-22 09:45:33 · 480 阅读 · 1 评论 -
写给自己的学习感言
时间过得很快,转眼间研一的生活就结束,今天算法考试就结束了,但是不能放下,结束不代表停止,代表更进一步的复习,其实感觉考试的过程和准备考试的过程都挺有意思的,也很有意义,一般只有这个时候比较能系统的复习知识,自己马上就研二了,所以七月同样不能放纵,得好好学习,现在有时间系统的总结了,总结学习知识点,然后系统的好好的给师弟师妹带着学习android!相信自己,考试结束只是意味着现在能稍稍不是那么紧张原创 2015-07-07 19:42:45 · 882 阅读 · 2 评论 -
近期学习计划书
近期学习特别乱,一直在家里学习看书,感觉适应了一段时间,但是同学来玩两天都没有看书,于是学习计划也就打乱了,来到学校,学习氛围更是变化很多,貌似又是一个环境的改变,又感觉到没有那么学的习惯,现在基本调整下来。近期每天都会学习一个Java知识点并做记录,《疯狂Java讲义》用《面试宝典》这本书作为练习,这个暑假,我就只想针对Java的面向对象做很详细的学习和练习。规划好就得执行任务,每天不能这样原创 2015-08-13 17:48:28 · 762 阅读 · 0 评论 -
Java笔记学习总结(一)
1:计算机概述(了解) (1)计算机 (2)计算机硬件 (3)计算机软件 系统软件:window,linux,mac 应用软件:qq,yy,飞秋 (4)软件开发(理解) 软件:是由数据和指令组成的。(计算器) 开发:就是把软件做出来。 如何实现软件开发呢?原创 2015-08-28 09:24:44 · 493 阅读 · 0 评论 -
Java笔记学习总结(五)
1:方法(掌握) (1)方法:就是完成特定功能的代码块。 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。 (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 方法体语句; return 返回值; } 修饰符:目前原创 2015-08-28 16:50:55 · 364 阅读 · 0 评论 -
Java笔记学习总结(三)
1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,– B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和–的用法原创 2015-08-28 10:25:24 · 356 阅读 · 0 评论 -
简单工厂模式
1.先来一个接口 package com.zhao.interfac; public interface Output { // 接口里定义的成员变量只能是常量 int MAX_CACHE_LINE = 50; // 接口里定义的普通方法只能是public的抽象方法 void out(); void getData(String msg);原创 2015-09-09 18:37:23 · 497 阅读 · 0 评论 -
Java学习积累one
1.最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。2.A. StringBuffer类调用toString()方法后将转换为String类型 正确B. String类型中没有append()方法C. 可以直接将字符串“test”复制给声明的Stirng类的变量,而StringBuffer类的不行D. Strin原创 2015-09-08 21:35:18 · 481 阅读 · 0 评论 -
接口和抽象类的区别与联系
联系:(1)接口和抽象类都不能被实例化,他们都位于继承树的顶端,用于被其他类实现和继承。(2)接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。区别:(1)接口作为系统与外界交互的窗口,接口体现的是一种规范。对于接口的实现者而言,接口规定了实现者必须向外提供哪些服务;对于接口的调用者而言,接口规定了调用者可以调用哪些服务,以及如何调用这些服务。当原创 2015-09-09 09:20:02 · 572 阅读 · 0 评论 -
对象的软、弱和虚引用
对大部分对象而言,程序里会有一个引用变量引用该对象,这是最常见的引用方式。除此之外,java.lang.ref包下提供了3个类:SoftReference、PhantomReference和WeakReference,它们分别代表了系统对对象的3种引用方式:软引用、虚引用和弱引用。因此,java语言对对象的引用有如下4种方式。(1)强引用(StrongReference)原创 2015-09-11 09:39:37 · 467 阅读 · 0 评论 -
Java中main()方法为什么采用这个方法签名
(1)public修饰符:java类有JVM调用,为了让JVM可以自由调用这个main()方法,所以使用public修饰符把这个方法暴露出来。(2)static修饰符:JVM调用这个主方法时,不会先创建该主类的对象,然后通过对象来调用该主方法,JVM直接通过该类来调用主方法,因此使用static修饰该主方法。(3)void返回值:因为主方法被JVM调用,该方法的返回值将返回给JVM,这没有原创 2015-09-11 11:34:56 · 1369 阅读 · 0 评论 -
Java中易错的一些小知识点
package com.zhao.test;public class TestOne { /*1题 * static{ int x=5; System.out.println(x); } static int x,y;//x=0;y=0 public static void m原创 2015-09-07 15:02:40 · 508 阅读 · 0 评论 -
Java中Collection和Iterator接口
Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集合。Collection接口里定义了如下操作集合元素的方法。(1)boolean add(Object o):该方法用于向集合里添加一个元素。如果集合对象被添加操作改变了,则返回true.(2)boolean addAll(Collection c原创 2015-09-11 16:53:18 · 606 阅读 · 0 评论 -
容易出错的Java笔试题
检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。12345678910111213141516171819202122232425262原创 2015-08-21 11:47:10 · 1353 阅读 · 0 评论 -
奇虎360Java笔试题
1题 执行以下程序后的输出结果是() public class Test { public static void main(String[] args) { StringBuffer a = new StringBuffer(“A”); StringBuffer b = new StringBuffer(“B”); operator(a, b);原创 2015-08-21 10:36:22 · 4404 阅读 · 0 评论 -
Java之BufferedImage简谈
1. 创建一个BufferedImage对象import java.awt.Frame;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.GraphicsConfiguration;import java.awt.GraphicsDevice;import java.awt.GraphicsEnvironment转载 2016-08-18 09:46:54 · 1782 阅读 · 0 评论