java程序员面试复习资料2——[JAVA编程基础]

/**作者:高雪峰 Email:ourjava@qq.com */

第二章:JAVA编程基础

考点:

一、关键字

  正确识别java语言的关键字(keyword)和保留字(reserved word)是十分重要的。Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

       关键字列表

  abstract boolean break byte case
  catch char class continue default
  do double else extends false
  final finally float for if
  implements import instanceof int interface
  long native new null package
  private protected public return short
  static super switch synchronized this
  throw throws transient true try
  void volatile while
  
  保留字
  const,goto

  注意点
  识别java语言的关键字,不要和其他语言如c/c++的关键字混淆。
  const和goto是java的保留字。
  所有的关键字都是小写
  friendly,sizeof不是java的关键字

  1, which of the following are keywords or reserved words in java?
  a) if b)then c)goto d)while e)case f)sizeof

  2, which of the following are java key words?
  a)double b)Switch c)then d)instanceof

  3, which of these are key words in java?
  a) default b)NULL c)String d)throws e)long f)true

  答案来了 1,acde 2,ad 3,adef 作对了吗^_^

  解释来了 1,then和sizeof都不是java的关键字,熟悉c或者c++,写惯了asp的高手就要小心喽。

  2,所有的关键字都是小写的,所以Switch不是关键字。instanceof看上去像方法名,但其实是关键字;

  3,大写的NULL不是java语言的关键字。String是java语言的一个封装类的类名,也不是关键字。


/**作者:高雪峰 Email:ourjava@qq.com */

关于JAVA中public protected private static四个关键字

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的classbase class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。 

 1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
 2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
 3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

作用域 当前类 同一package 子孙类 其他package 

public       √          √           √            √

protected √         √            √            ×

friendly     √         √            ×            ×

private     √         ×            ×             ×

不写时默认为friendly

二、JAVA数据类型

String是最基本的数据类型吗?

基本数据类型包括 byte int char long float double boolean short
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer
3 int Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。 Int java 的原始数据类型, Integer java int 提供的封装类。 Java 为每个原始类型提供了封装类。
原始类型封装类: booleanBoolean    charCharacter    byteByte    shortShort
intInteger                  longLong             floatFloat    doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null ,而原始类型实例变量的缺省值与它们的类型有关。
4 String StringBuffer 的区别
JAVA 平台提供了两个类: String StringBuffer ,它们可以储存和操作字符串,即包含多个字符的字符数据。这个 String 类提供了数值不可改变的字符串。而这个 StringBuffer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用 StringBuffer 。典型地,你可以使用 StringBuffers 来动态构造字符数据。

 三、标识符

在java里可以由自己起名字的地方都可以叫标识符. 
 
当然sun规定java和其他语言一样有自己的标准,
 
 
1.标识符必须是字母,数字,下划线,美元符号.
错误的例子:#java   Hello Java(中间有个空格)  Java@ ..
2.标识符开头必须由字母,下划线,美元符号开始.
3.标识符号对大小写敏感,长度没有限制.

四、运算符

最恼火。。。优先级等等,陷阱特别多;

 

/**作者:高雪峰 Email:ourjava@qq.com */

 算术运算符和表达式

考点:1

 

 

算术运算符和表达式
  1.算术运算符
  算术运算表达式由算术运算符和一个或者两个操作数组成。算术运算符分为一元和二元两种,表3-1给出了Java算术运算符。
表3-1 Java算术运算符



  注意:表3-1中,“ ”也可以作为字符串连接运算符。
  2.算术运算符的优先级
  算术运算符的优先级顺序为: 和--运算,以及一元加、减的优先级别最高;其次是*、/和%运算; 和-的优先级最低。

3.2关系运算符和表达式

考点:2

关系运算符和表达式
  关系运算表达式由两个操作数和关系运算符组成,实现两个操作数之间关系的比较,比较结果以布尔类型存储表3-2给出了Java关系运算符。
           表3-2 Java关系运算符


 

 

3.3布尔运算符和表达式

考点:3

 

布尔运算符和表达式
  1.布尔逻辑运算符
  布尔运算表达式由关系表达式和布尔运算符组成,实现对关系表达式的值进行布尔逻辑运算,运算结果也是布尔型。表3-3给出了Java布尔逻辑运算符。
       表3-3 Java布尔逻辑运算符



  2.关系运算符和布尔逻辑运算符的优先级关系
  !优先级最高,其次是>、>=、<、<=,再次是==和!=,然后是&&,优先级最低的是| |。编写程序的时候,使用括号可以改变优先级次序。
  3.“短路”运算方式
   对于&&和| |运算符,Java语言采用短路方式运算,基本原则如下。
  (1)运算符&&左边的表达式值若为false,则不用计算右边的表达式的值,整个表达式值为false。
  (2)运算符| |左边的表达式值若为true,则不用计算右边的表达式的值,整个表达式值为true。

3.4位运算符和表达式

 

考点:4
位运算符和表达式
  1.位运算符
  位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>>、<<和>>>)。表3-4给出了Java位运算符。
             表3-4 Java位运算符

 

 


  在进行位运算时,需要注意以下几点。
  (1)>>>和>>的区别是:在执行运算时,>>>运算符的操作数高位补0,而>>运算符的操作数高位移入原来高位的值。
  (2)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。
  (3)若进行位逻辑运算的两个操作数的数据长度不相同,则返回值应该是数据长度较长的数据类型。
  (4)按位异或可以不使用临时变量完成两个值的交换,也可以使某个整型数的特定位的值翻转。
  (5)按位与运算可以用来屏蔽特定的位,也可以用来取某个数型数中某些特定的位。
  (6)按位或运算可以用来对某个整型数的特定位的值置l。
  2.补码的概念
  在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。
  (l)正数的最高位为0,其余各位代表数值本身(二进制数)。
  (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。
  3.位运算符的优先级
  ~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|。

3.5赋值运算符和表达式

 

 

考点:5

 

 

赋值运算符和表达式
  赋值运算符由变量和表达式组成,一般格式是:
  <变量><赋值运算符><表达式>
  赋值运算符包括赋值运算符(=0)和扩展赋值运算符。表3-5给出了Java赋值运算符。
        表3-5 Java赋值运算符

 

 


  注意:如果在赋值运算符两侧的类型不一致时,若右侧变量类型的级别高,则需要进行强制类型转换。

3.6条件运算符和表达式

考点6:

 

 

条件运算符和表达式
  条件表达式由3个操作数和“?”、“:”组成,一般形式是:
  opl?opt:op3
  其中op1是关系或者布尔逻辑表达式,该值若为真,则计算op2表达式的值,并作为整个表达式的结果;若为假,则计算op3表达式的值,并作为整个表达式的结果。

 

 

3.7运算符优先级

 

 

考点:7

 

运算符优先级
  Java语言从左向右计算表达式的值。当一个表达式中有多个运算符的时候,运算的次序由表3-6所示的优先级顺序决定。
         表3-6 Java运算符优先级别表


  在表3-6中,优先级次序越小,优先级越高,在表达式中,同一级中的运算符按照从左到右的顺序执行。
  注意:在表3-6中出现了一些在前面内容中没有介绍的运算符:下标运算符[ ],实例运算符instanceof,内存分配运算符new,强制类型转换符(类型)等,都属于Java运算符的集合。

3.8复杂表达式和表达式语句

 

 

考点:8

 

  复杂表达式和表达式语句
  复杂表达式是含有两个或者两个以上运算符的表达式。
  注意:表达式可以只由一个常量或者一个变量构成,此时表达式的值就是该常量或者变量的值。
  表达式语句是指由表达式直接构成的语句,通常包括3种。
  (1)一元算数表达式(由 或者- -运算符构成)。
  (2)在赋值表达式后面加上分号。
  (3)无返回值的方法调用语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值