Java语言基础
一、数据类型
在Java中数据类型分为基本数据类型和引用数据类型。8种基本数据类型如下所示:
(1)整数类型
整形数据有3种表示形式,分别为八进制、十进制、十六进制。
十进制:不能以0作为十进制的开头(0除外);
八进制:八进制必须以0开头;
十六进制:十六进制必须以0x或0X开头。
二进制:二进制以0b开头(jdk1.7开始)。
整数直接量默认为int型,不能超范围,否则会编译错误;两个整数相除,结果还是整数,小数位无条件舍弃;运算时超出范围会发生溢出,溢出是需要避免的;
(2)浮点类型
默认情况下小数都被看作是double型,若使用float型则需在小数后面添加F或f。
精确运算场合不能使用double和float而要使用BigDecimal。
常考问题:
(3)字符类型
采用Unicode编码(unicode编码单元可以表示为十六进制值,\u000-\ufff),每个字符(char)都有一个对应的码(int);表现形式为char字符,实质上是int码;字符必须放在单引号中,有且仅有一个;特殊符号需通过\来转义。
unicode/utf-8/utf-16区别:其实Unicode涉及到两个步骤,首先是给所有的字符指定一个唯一对应的数字(Unicode是用0至65535之间的数字来表示所有字符).第二步才是怎么把字符对应的数字以二进制保存在计算机中,于是就有utf-8/utf-16.
UTF-16比较好理解,就是任何字符对应的数字都用两个字节来保存.当用UTF-8来表示一个字符时是可变的,有可能是用一个字节表示一个字符,也可能是两个,三个。
(4)布尔类型
Boolean只有true和false两个值。整型值与布尔值之间不能进行相互转换。
(5)基本类型间的转换
类型从小到大依次为:
byte,short,int,long,float,double
char
注意:long是8个字节,float是4个字节。但整数和浮点数的存储规则不一样,long的范围是小于float的。
1)两种方式:
1.1)自动类型转换:从小类型到大类型
1.2)强制类型转换:从大类型到小类型,强转有可能会溢出和精度丢失
2)两点规则:
2.1)整数直接量可以直接赋值给byte,short,char,但不能超范围
2.2)byte,short,char型变量参与运算时,先一律转为int再运算
基本数据类型之间的转换(必看,经常容易考到):
http://blog.csdn.net/sky_ground/article/details/49738761
3)8种基本类型取值范围和占用内存如下:
二、常量与变量
在程序执行过程中,其值不能被改变的称为常量,其值能被改变的称为变量。常量与变量的命名必须使用合法的标识符。命名规则为:只能包含字母、数字、_和$符,并且不能以数字开头;严格区分大小写;不能使用关键字;可以中文命名,但不建议,建议"见名知意"、"驼峰命名法"。常量通过final关键字进行限定,常量必须声明的同时初始化。
三、运算符
Java中的运算符可以分为以下几组:
算术运算符,关系运算符,逻辑运算符,赋值运算符,位运算符,其它运算符。
(1)赋值运算符(=,+=,-=,*=,/=,%=)
赋值运算符处理时会先取得右方表达式的结果,因此如果有多个赋值运算会从最右方的“=”开始处理。
(2)算术运算符(+,-,*,/,%,++,--)
整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN(0.0/0)结果.
(3)关系运算符(<、>、==、!=、>=、<=)
(4)逻辑运算符(&&、||、!)
逻辑运算是建立在关系运算基础之上的,逻辑运算的结果也是boolean型。&&为短路与,如果左边表达式为假时不会去判断右边的表达式,非短路与(&)会始终执行两边的表达式。
(5)位运算符
“按位与”(&):双目运算符,如果两个整型数据对应位都是1,则结果位才是 1, 否则为0.
“按位或”(|):双目运算符,如果两个操作数对应位都是0,则结果位才是0,否则为1.
“按位取反”(~):单目运算符,就是将操作数二进制中的1修改为0,0修改为1.
“按位异或”(^):双目运算符,当两个操作数的二进制表示相同时(同为0或者同为1),结果为0,否则为1.
位移操作:
<<:左移,一个数左移n位,可以实现乘以2^n
>>:右移,一个数右移n位,可以实现除以2^n
>>>:无符号右移
(6)其他
字符串拼接:+
三目运算符:boolean?数1:数2
(7)运算符优先级如图:
<!--EndFragment-->
相关推荐
Java编程语言在面试中是必不可少的话题,特别是在...以上知识点是Java面试中常见的问题,掌握这些知识对于准备Java面试至关重要。面试时,候选人还需要展示问题解决能力、编程技巧以及对Java框架和其他相关技术的理解。
本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答案,包含Java语言常见面试题、Java工程师高级面试题及一些大厂Java开发面试宝典被引用的对象就一定能存活吗?不一定,看 Reference 类型,弱引用在 GC 时...
这份PDF文件包含了122道精心挑选的Java面试题目,旨在全面覆盖Java编程语言的核心概念、框架、设计模式以及最佳实践。以下是对这份宝典中可能涵盖的知识点的详细解析: 1. **Java基础**:这部分可能会涉及Java的...
Java编程语言作为软件开发领域的主流语言之一,其面试题库涵盖了广泛的领域,包括基础语法、面向对象编程、集合框架、多线程、网络编程、异常处理、IO流、设计模式等。以下是一些核心知识点的详细说明: 1. **基础...
3. **Java面试重点** - 垃圾回收与内存管理:理解JVM内存模型,包括堆、栈、方法区、本地方法栈等,以及不同垃圾回收算法。 - 数据结构与算法:面试中常考,包括排序、查找算法,以及数据结构的选择和优化。 - ...
这份"【面试必备】JAVA 最常见面试题全解析 附 PDF"文档,正是为准备Java面试的开发者量身定制的资源,涵盖了Java的基础到高级知识点,旨在帮助你全面理解和掌握Java技术。 一、基础篇 1. Java语法:包括变量、数据...
Java面试必备必知必会,这是每个Java开发者在求职或者职业发展中都需要面对的主题。Java面试通常涵盖以下几个核心领域:Java基础、集合框架、多线程并发以及虚拟机(JVM)知识。以下将对这些关键知识点进行详细阐述...
### JAVA面试题详解 #### 1. 异常处理机制的简单原理和应用 异常处理是Java编程语言中的一项重要特性,它用于检测程序运行时出现的问题并采取适当的措施。当程序违反了Java的语义规则时,Java虚拟机会抛出一个异常...
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面。这份资源显然为准备Java面试的程序员提供了...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。对于Java工程师来说,面试准备至关重要,因为这不仅关乎技术能力的展现,也是评估个人问题解决能力和项目经验的关键环节。本压缩包文件...
《JAVA面试宝典》是一本全面涵盖Java技术体系和求职面试知识的指南,旨在帮助Java开发者准备面试,提升技能。本书共分为十章,从基础知识到框架应用,再到项目实战和面试题解析,覆盖了Java开发者的必备技能。 第一...
"Java面试必备208题.zip"这个压缩包文件提供了全面的面试准备资料,其中的"Java面试必备208题.pdf"涵盖了Java语言的各个方面,包括基础概念、面向对象、集合框架、多线程、IO流、网络编程、异常处理、JVM内存模型...
Java面试宝典2017版是一份集大成的面试资源,专为准备Java相关职位面试的求职者量身打造。这份文档旨在帮助求职者系统性地复习和掌握Java编程语言的关键知识点,以应对各类面试挑战。以下将对这份资料中的主要知识点...
总的来说,准备Java面试时,你需要深入理解这些技术的原理、应用场景和最佳实践,结合实际项目经验进行回答,才能在面试中展现出专业水平。通过这份1000+面试题的资源,你可以系统地复习并测试自己的知识深度,提升...
Java面试必备宝典是针对Java开发者的一份重要学习资源,主要涵盖了2015届面试的常见问题和重点知识。这份资料集可以帮助求职者全面了解并掌握Java编程语言的关键概念和技术,以提升在面试中的竞争力。 一、Java基础...
虽然Java面试中涉及C++不多,但理解C++的面向对象特性、指针、内存管理、模板等也是加分项。 十、Weblogic及其他: Weblogic是企业级应用服务器,了解其部署、配置、集群等知识,同时可能考察其他服务器如Tomcat、...
"java面试题目.doc"和"java面试题目(53页).doc"进一步补充了面试题库,可能包含了一些特定场景的应用问题,如Web开发、大数据处理、微服务架构等,这些都是现代Java开发者必备的知识。 最后,"Core Javaceshiti.doc...
这个压缩包"java面试必备资源"显然是为准备Java面试者提供的一份宝贵资料。下面将详细解析可能包含的知识点,帮助你全面理解和掌握Java面试的核心内容。 1. **基础语法**:面试通常会从Java的基础语法开始,如数据...