首页 > 运维 > 知识 > Java各种类的区别,Java的基本类型和普通类的区别

Java各种类的区别,Java的基本类型和普通类的区别

来源:整理 时间:2024-05-05 09:26:22 编辑:黑码技术 手机版

本文目录一览

1,Java的基本类型和普通类的区别

1. Java基本类型包括八种:int、byte 、short、long、double、boolean、char、float。2. 基本类型之间可以通过 "=="来比较,普通类的对象无法直接通过==来比较。其实这之间就有一个“对象引用”的概念。基本类型是“值”的概念,普通类是“对象引用”的概念。
基本类型与封装类的最大区别是,封装类是引用类型,其实问题就是基本类型和引用类型的区别。基本类型在内存中是存储在栈中,引用类型的引用(值得地址)存储在栈中,而值是存储在堆中。建议学习下堆栈,这样就很清楚了。

Java的基本类型和普通类的区别

2,Java的基本类型和普通类的区别

00:00 / 03:5970% 快捷键说明 空格: 播放 / 暂停Esc: 退出全屏 ↑: 音量提高10% ↓: 音量降低10% →: 单次快进5秒 ←: 单次快退5秒按住此处可拖拽 不再出现 可在播放器设置中重新打开小窗播放快捷键说明

Java的基本类型和普通类的区别

3,java中的几个类的意思

1、joptionpane 是一类已经编写好的对话框类,使程序更加简便 大体有以下几种吧: 第一种是显示警告信息的, 第二种是要用户确认 第三种可确认或取消或放弃,我记得是有三个按钮在上面的 第四种输入 第五种有选择地输入, 2、NumberFormat 格式化数字3、Locale 本地化属性。 实际上这是JDK中的类 java.util.locale: 创建完 Locale 后,就可以查询有关其自身的信息。使用getCountry可获取 ISO国家/地区代码,使用 getLanguage 则获取 ISO 语言代码。 struts2.0中只是在struts.properties等配置文件中对应用的locale进行设 置,然后再读取出来。4、JTextArea 输入的文本域可以在里面输入文本可以查jdk帮助文档,里面说的很详细,英文版的看不懂,也有中文版的。

java中的几个类的意思

4,Java五个最常用的集合类之间的区别和联系

常用的集合类有一下几种:List结构的集合类:ArrayList类,LinkedList类,Vector类,Stack类Map结构的集合类:HashMap类,Hashtable类Set结构的集合类:HashSet类,TreeSet类Queue结构的集合:Queue接口 HashMap和Hashtable的区别:HashMap和Hashtable都是java的集合类,都可以用来存放java对象,这是他们的相同点以下是他们的区别:1.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是java 1.2引进的Map接口的一个现实。2.同步性:Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的,而HashMap则是异步的,因此HashMap中的对象并不是线程安全的,因为同步的要求会影响执行的效率,所以如果你不需要线程安全的结合那么使用HashMap是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率,我们一般所编写的程序都是异步的,但如果是服务器端的代码除外。3.值:HashMap可以让你将空值作为一个表的条目的key或valueHashtable是不能放入空值(null)的 ArrayList和Vector的区别:ArrayList与Vector都是java的集合类,都是用来存放java对象,这是他们的相同点,区别:1.同步性:Vector是同步的,这个类的一些方法保证了Vector中的对象的线程安全的,而ArrayList则是异步的,因此ArrayList中的对象并不 是线程安全的,因为同步要求会影响执行的效率,所以你不需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必 要的性能开销。2.数据增长:从内部实现的机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象,当你向两种类型中增加元素的时候,如果元素的数目超过了内部数组目前的长度他们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大,所以如果你要在集合中保存大量的数据,那么使用Vector有一些优势,因为你可以通过设置集合的初始大小来避免不必要的资源开销。 总结:1)如果要求线程安全,使用Vector,Hashtable2)如果不要求线程安全,使用ArrayList,LinkedList,HashMap3)如果要求键值对,则使用HashMap,Hashtable4)如果数据量很大,又要求线程安全考虑Vector 1.ArrayList: 元素单个,效率高,多用于查询2.Vector: 元素单个,线程安全,多用于查询3.LinkedList:元素单个,多用于插入和删除4.HashMap: 元素成对,元素可为空5.HashTable: 元素成对,线程安全,元素不可为空 ArrayList底层是Object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。而在LinkedList的底层是一种双向循环链表。在此链表上每一个数据节点都由三部分组成:前指针(指向前面的节点的位置),数据,后指针(指向后面的节点的位置)。最后一个节点的后指针指向第一个节点的前指针,形成一个循环。双向循环链表的查询效率低但是增删效率高。ArrayList和LinkedList在用法上没有区别,但是在功能上还是有区别的。 LinkedList经常用在增删操作较多而查询操作很少的情况下:队列和堆栈。队列:先进先出的数据结构。栈:后进先出的数据结构。注意:使用栈的时候一定不能提供方法让不是最后一个元素的元素获得出栈的机会。 Vector(与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多。)结论:在考虑并发的情况下用Vector(保证线程的安全)。在不考虑并发的情况下用ArrayList(不能保证线程的安全)。 面试经验(知识点):java.util.stack(stack即为堆栈)的父类为Vector。可是stack的父类是最不应该为Vector的。因为Vector的底层是数组,且Vector有get方法(意味着它可能访问到并不属于最后一个位置元素的其他元素,很不安全)。对于堆栈和队列只能用push类和get类。Stack类以后不要轻易使用。实现栈一定要用LinkedList。(在JAVA1.5中,collection有queue来实现队列。) Set-HashSet实现类:遍历一个Set的方法只有一个:迭代器(interator)。HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复。在Object中除了有finalize(),toString(),equals(),还有hashCode()。HashSet底层用的也是数组。当向数组中利用add(Object o)添加对象的时候,系统先找对象的hashCode:int hc=o.hashCode(); 返回的hashCode为整数值。Int I=hc%n;(n为数组的长度),取得余数后,利用余数向数组中相应的位置添加数据,以n为6为例,如果I=0则放在数组a[0]位置,如果I=1,则 放在数组a[1]位置。如果equals()返回的值为true,则说明数据重复。如果equals()返回的值为false,则再找其他的位置进行比 较。这样的机制就导致两个相同的对象有可能重复地添加到数组中,因为他们的hashCode不同。如果我们能够使两个相同的对象具有相同hashcode,才能在equals()返回为真。在实例中,定义student对象时覆盖它的hashcode。因为String类是自动覆盖的,所以当比较String类的对象的时候,就不会出现有两个相同的string对象的情况。现在,在大部分的JDK中,都已经要求覆盖了hashCode。结论:如将自定义类用hashSet来添加对象,一定要覆盖hashcode()和equals(),覆盖的原则是保证当两个对象hashcode返回相同的整数,而且equals()返回值为True。如果偷懒,没有设定equals(),就会造成返回hashCode虽然结果相同,但在程序执行的过程中会多次地调用equals(),从而影响程序执行的效率。
文章TAG:java各种种类区别Java各种类的区别

最近更新

相关文章