Java基础
铁憨憨的学习记录
越努力,越幸运,加油
展开
-
Java中类和对象的学习
类的目的: 抽取出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。抽象的关键是抓住事物的两个方面:属性和行为。类体:1、变量的声明:用来存储属性的值(体现对象的属性)。 数据 2、方法定义:方法可以对类中声明的变量进行操作,即给出算法(体现对象所具有的行为)。类是具有相同数据结构(属性)和相同操作功能(行为)的对象的集合,对象的共性抽象为类,...原创 2018-07-11 10:01:49 · 462 阅读 · 0 评论 -
Java反射机制getModifiers()方法的作用
JAVA 反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符。其中,该修饰符是java.lang.reflect.Modifier的静态属性。对应表如下:PUBLIC: 1PRIVATE: 2PROTECTED: 4STATIC: 8FINAL: 16SYNCHRONIZED: 32VOLATILE: 64TRANSIENT: 12...转载 2018-09-03 17:08:58 · 13571 阅读 · 1 评论 -
关于HashSet是无序的个人理解
首先看下面两篇博客:https://blog.csdn.net/snail_rao/article/details/7341315https://blog.csdn.net/qq_24251323/article/details/52748398这两篇博客都有自己的理解,结合一下,可以总结有如下情况: (1)、当输入的值大小和底层数组大小差不多的时候,HashSet的输入顺序是...原创 2018-08-29 16:47:59 · 3679 阅读 · 0 评论 -
Java中==和equals的区别,equals和hashCode的区别
在java中:==是运算符,用于比较两个变量是否相等。equals,是Objec类的方法,用于比较两个对象是否相等,默认Object类的equals方法是比较两个对象的地址,跟==的结果一样。Object的equals方法如下: public boolean equals(Object obj) { return (this == obj); }h...转载 2018-08-21 22:19:35 · 104 阅读 · 0 评论 -
关于Java中判断两个字符串相等的问题
1、java中字符串的比较是==比较引用,equals 比较值so我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1:String a="abc";String b="abc";那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存 一份,所以a和b指向的是同一个对象;examp...原创 2018-08-21 21:13:37 · 6262 阅读 · 0 评论 -
异常常见面试题
概念题:1.java中用来抛出异常的关键字是什么?throw2.异常和Error(错误)的区别?error:是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception :表示可恢复的例外,这是可捕捉到的3.什么是异常?所谓异常是指程序在运行过程中发生的一些不正常事件。(如:除0溢出,数组下标越界,所读取的文件不存在)4.什么类是所有异常类的父类...转载 2018-08-24 14:39:26 · 2775 阅读 · 0 评论 -
java异常处理复习
一、先来看看Java异常类体系图 java中通过类对所有的不正常的现象进行描述,并封装为对象。由这些类组成的一个专门处理Java中的各种异常的体系称为Java的异常体系。 java的异常体系包含在java.lang这个包默认不需要导入。 java异常体系 如何判断一个错误与异常: 如果程序出现了不正常的信息,...原创 2018-08-24 11:32:10 · 209 阅读 · 0 评论 -
关于public static void main(String[] args)中的String[] args的认识
在命令提示符中运行该程序时 可以附加参数运行 输入的参数会存入到字符传数组 args[]中例如:在命令提示符中运行该程序的时候假设该程序在D的JAVA文件夹中D:JAVA\javac Example.javaD:JAVA\java Example 20则屏幕中输出This is a simple Java program.而args[]中所存储的是20首先我们知道,这是可变参数的...转载 2018-08-28 09:50:21 · 1244 阅读 · 0 评论 -
多线程复习
概念: 如果一个 进程中同时运行了多个线程,用来完成不同的工作,则称为多线程。 多个线程交替的占用CPU资源,而非真正的并行执行。好处: 充分利用CPU资源 简化编程模型 带来良好的用户体验1、获取当前线程public class ThreadDemo { public static void main(String[] args) {...原创 2018-08-20 21:38:42 · 170 阅读 · 0 评论 -
关于Java中的反射机制
定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++...原创 2018-08-17 00:26:51 · 218 阅读 · 0 评论 -
java各种集合的线程安全
线程安全首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操作同一个variable,就可能会出现不可预知的结果。根据上面的解释,很容易想出相应的scenario。 而用s...转载 2018-08-12 11:02:07 · 1194 阅读 · 0 评论 -
Java中HashMap的实现原理
一、Java中的hashCode和equals1、关于hashCodehashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的 如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同 如果对象的equals方法被重写,那么对象的...转载 2018-08-11 22:26:13 · 137 阅读 · 0 评论 -
Java集合常见面试题(二)
1.为什么Map接口不继承Collection 接口?Set是无序集合,并且不允许重复的元素 List是有序的集合,并且允许重复的元素 而Map是键值对 它被视为是键的set和值的set的组合 Map被设计为键值对的集合,所以不需要继承Collection 接口2.HashMap和Hashtable之间的区别?同步或线程安全 Null键和Null值 迭代值 默认容量大小3...原创 2018-08-11 21:25:40 · 555 阅读 · 1 评论 -
Java集合常见面试题(一)
集合和数组的区别:1:数组是固定长度的;集合可变长度的。2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。1.ArrayList和LinkedList的区别ArrayList(数组结构): 优点:get和set调用花费常数时间,也就是查询的速度快; ...原创 2018-08-11 20:25:08 · 14704 阅读 · 3 评论 -
Java集合复习笔记
先来看看集合体系框架图: 1、Collection (集合的最大接口)继承关系 ——List 可以存放重复的内容,有序 ——Set 不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分,无序 ——Queue 队列接口, ——SortedSet 可以对集合中的数据进行排序...原创 2018-08-11 14:15:14 · 307 阅读 · 0 评论 -
继承的注意要点以及多重继承关系的初始化顺序
记住下面这行字:父类属性---》父类构造方法---》子类属性---》子类构造方法关于继承有如下几个要点:1、不能被子类继承的父类成员 private成员 子类和父类不在同一个包,使用默认访问权限的成员 构造方法构造方法不会被重写,因为不能被继承。方法重写的规则:方法名相同;参数列表相同;返回值类型相同或者是其子类;访问权限不能严于父类 super关键字来访...原创 2018-08-03 20:10:37 · 688 阅读 · 0 评论 -
Java类继承关系中的初始化顺序
Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释。非继承关系中的初始化顺序对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类的一个实例,普通成员变量SampleClass 类的2个实例(在程序中的顺序不一样)以及一个静态...转载 2018-08-03 20:02:14 · 141 阅读 · 0 评论 -
java并发:synchronized的实现原理与应用
前言:在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。先来看下利用synchronized实现同步的基础:Java中的每一个对象都可以作为锁。具体表现 为以下3种形式。 ·对于普通同步方法,锁是当前实例对象。 ·对于静态同步方法,锁是当前类的Class对象。 ·对于同步方法块,锁是Synchoni...原创 2019-06-26 17:31:51 · 174 阅读 · 0 评论