Java中类型大体分为两类,一类是原始类型,一类是引用类型。另外,java为每个原始类型提供了封装类。它们之间有很多的不同。
如下:
1. 声明时存储的内容不同。
声明一个原始类型时,就为类型本身声明了存储。而声明一个引用变量时,在堆栈中存放不是对象本身,而是对对象的引用。也就是存储的是指向对象存储所在的堆的某个区域的指针。
2. 实例化数据时缺省值不同。
对象引用实例变量缺省值为null; 而原始类型的缺省值是与具体类型相关的“似零值”
3. 调用方式不同。
原始数据类型不需要调用new,也不要创建对象。而引用类型需要调用new创建对象。
当然为了,程序员操作方便,java中为所有的原始数据类型提供了相对应的封装类。这些封装类使得这些我们可以像一般对象那样使用原始类型。
下面延伸几个知识点:
1. Int 和 integer的区别
2. ==与equals的区别
这两个都都是用于判断是否相等用的。
判断是否相等在java中分为原始数据类型的比较,和引用类型的比较。
原始数据类型比较使用==就是直接比较他的值。这个没有多大问题。
问题在于,引用对象之间的比较。==和object对象中equals都是比较两个对象的引用对象是否相等。而不是对象本身。不同的是,equals方法可以覆盖,其他类继承object类时可以覆盖equals方法。使他比较的是对象本身。
(可以结合看看jdk的源代码!)
public class Test{
public static void main(String[] args){
//s1,s2分别位于堆中不同空间
String s1=new String("hello");
String s2=new String("hello");
System.out.println(s1==s2)//输出false//s3,s4位于池中同一空间
String s3="hello";
String s4="hello";
System.out.println(s3==s4);//输出true
}
}
这里有添加一个比较怪异的现象!
这里主要是因为使用的对象池技术! 详情请参考 博文: http://minijack.iteye.com/blog/976355
从一道诡异的程序说起!
3.String和stringbuffer和stringbuild的区别
Java提供了两个字符串类:String和StringBuffer。它们可以储存和操作字符串,即包含多个字符的字符串数据。String提供了不可改变的字符串,而stringbuffer提供的字符串对象可以进行修改。当知道要修改的时候可以使用StringBuffer类创建。
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。
StringBuffer 线程安全JDK 1.0 StringBuilder 线程不安全JDK 1.5
为了达到线程安全的目的在一定程度上会降低程序的性能。所以在单线程中,StringBuilder的性能要比StringBuffer高。多线程为了线程安全需要采用StingBuffer。其实在线程不考虑的情况下,要是程序对性能的要求不高,太在意这两者的区别就没有什么意义
5.11 补充!
分享到:
相关推荐
数据类型、变量与运算符:理解Java中的基本数据类型、变量声明与初始化,以及常用的运算符和表达式。 控制流语句:熟悉if-else、switch、for、while等控制流语句的用法。 面向对象编程:深入理解Java中的类、对象、...
1. **Java基础**:面试中,面试官通常会从基本语法开始,包括数据类型、变量、运算符、流程控制(if、switch、for、while)、类与对象、封装、继承、多态等。理解并能灵活运用这些基础知识是成为一名合格Java开发者...
2. **Java面试之独孤九剑**:可能对应的是Java集合框架的掌握,包括ArrayList、LinkedList、HashMap、HashSet等数据结构。理解它们的工作原理、性能特点和适用场景,能灵活运用解决实际问题,是展示编程功底的重要...
1. **基础语法**:面试时常会考察Java的基础知识,如数据类型、变量、运算符、流程控制(if/else, switch, for/while循环)、异常处理、方法等。理解并能灵活运用这些概念是成为一名合格Java开发者的基础。 2. **...
其中,基础语法包括变量、数据类型、运算符、流程控制等;面向对象部分则深入讲解类、对象、继承、多态、封装等概念;集合框架是Java中重要的一部分,包括ArrayList、LinkedList、HashMap、TreeMap等容器的使用与...
1. **基础语法**:这部分涵盖了Java的基础知识,如数据类型、变量、运算符、流程控制(if-else,switch,for,while等)、方法和数组。理解这些概念是成为合格Java程序员的基础。 2. **面向对象编程**:包括类、...
1. **基础语法**:这包括变量、数据类型、运算符、控制结构(如if语句、for循环、while循环)、方法、类和对象等基本概念。面试官可能会询问关于封装、继承和多态等面向对象编程的基本原则。 2. **异常处理**:理解...
Java 是一种广泛使用的编程语言,本文总结了 Java 面试中常见的知识点,涵盖了 Java 基础、字符串操作、数据类型、运算符、抽象类等方面的知识。 Java 基础 1. JDK 和 JRE 的区别:JDK(Java Development Kit)...
《Java面试题大全.pdf》文件中包含了丰富的面试题目,覆盖了Java的核心知识、开发平台、数据类型、面向对象编程、数据结构等多个方面,对求职者来说是一份非常有价值的复习资料。 首先,面试题中提到了两种常见的...
在准备Java面试时,了解和掌握一系列核心知识点是至关重要的。以下是一些基于标题和描述中的关键领域,如MyBatis、Spring、Redis、多线程、网络编程以及面试题库的重要知识点: 1. **Java基础**:Java是面试的基础...
首先,我们来看"java练习题2.doc",这可能是针对基础语法和编程技巧的练习,涵盖了变量、数据类型、控制结构、函数、类和对象等基础概念。求职者需要熟练运用这些知识编写代码,并理解面向对象设计原则。 "JAVA认证...
### 2017最新Java面试题知识点梳理 #### 一、面向对象编程(OOP) 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”的概念来组织代码结构。Java作为一种典型的面向对象语言,支持...
Java面试宝典.pdf 以下是根据给定文件信息生成的相关知识点: Java语言的特点 1. 简单易学:Java语言有丰富的类库,易于学习和使用。 2. 面向对象:Java语言的最重要特性,让程序耦合度更低,内聚性更高。 3. 与...
- **语法基础**:考查面试者对于Java语言的基础语法掌握程度,例如变量声明、数据类型转换、运算符使用等。 - **算法基础**:评估面试者对常见算法的理解,比如排序算法(冒泡排序、快速排序等)、查找算法(二分...
1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉流程控制语句,如if-else、switch-case、for、while等。 2. **类与对象**:掌握面向...
1. **Java基础**:Java面试题-COREJAVA部分.txt可能会涵盖Java的基础语法,如数据类型、变量、运算符、流程控制语句,以及类、对象和封装等面向对象编程的概念。 2. **集合框架**:Java面试中,集合框架是必考知识...
- **语法与数据类型**:理解基本数据类型(如int、float、boolean等)以及引用类型(如类、接口和数组)。掌握变量声明、运算符和控制流(如if-else、for、while和switch语句)。 - **类与对象**:了解类的定义、...
在Java面试中,数据结构与算法是至关重要的考察点,它们是解决问题的基础工具,能够有效提升程序的效率和可维护性。以下将详细介绍标题和描述中提到的一些关键知识点。 1. **数组**:数组是最基本的数据结构,它在...