黑马程序员——Java基础---Java语言基础(一)

------- android培训java培训、java学习型技术博客、期待与您交流! ----------

概述

    Java语言是一门高深的学问,要想掌握高深的技术,必须对Java语言的基础进行掌握。就如同想成为篮球明星,必须掌握最基本的控球技术一样。我们一起来了解一下Java语言的基础组成部分,为以后的Java之路做良好的铺垫。Java语言的基础组成包括:关键字、标示符、注释、常量和变量、运算符、语句、函数、数组等。


一、关键字

  • 关键字
    • 定义:被Java语言赋予了特殊含义的单词。
    • 特点:关键字中所有字母都为小写。
  • 保留字
    • 其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

  1. 用于定义数据类型的关键字
    • 基本数据类型
    • 整数类型:byte  short  int  long  
    • 浮点类型:float  double
    • 字符类型:char 
    • 布尔型:boolean
  • 引用数据类型:
  • class(
  •  interface(接口)
  • void  用于函数上表示无返回值类型
用于定义数据类型值的关键字
  •  true()
  •  false(
  •  null()
用于定义流程控制的关键字
  • 判断:if  else  switch case  default
  • 循环:for  while  do 
  • 继续循环:continue 
  • 结束循环或选择结构:break
  • 返回:return
用于定义访问权限修饰符的关键字
  • private(私有的)
  • protected(受保护的
  • public(公有的)
用于定义类,函数,变量修饰符的关键字
  • abstract(抽象的
  • final(最终的
  • static(静态的
  • synchronized(同步的)
  • enum(枚举)
用于定义类与类之间关系的关键字
  • extends(继承) implements(实现)
用于定义建立实例及引用实例,判断实例的关键字
  • new(建立实例)
  • this(当前引用)  
  • super(父类引用)  
  • instanceof(判断对象类型)
用于异常处理的关键字
  •  try(检查异常)  catch(捕获异常)  finally(最终执行
  •  throw(抛出异常对象), 用在函数内;throws(抛出异常类),用在函数上
用于包的关键字
  • package(创建包)
  • import(导入包)
其他修饰符关键字
  • native(本地)  
  • strictfp(strict float point,精确浮点)  
  • transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)
  • volatile(类型修饰符,用来修饰被不同线程访问和修改的变量
  • assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)

注:main不是关键字,是被虚拟机所识别的一个名称。


二、标识符

1.标识符定义及规则

  • 在程序中自定义的一些名称。可以理解为为在Java中增加阅读性的自定义名称
  • 定义合法标识符规则:
    • 由26个英文字母大小写,数字:0-9 符号:_ $ 组成数字不可以开头。
    • 不可以使用Java中关键字和保留字。
    • Java中严格区分大小写。
    • 别用Java API中的类名作为自己的类名。
  • 注意:在起名字的时,为了提高阅读性,要尽量有意义。

2.Java中的名称规范:

  • 包名:多单词组成时所有字母都小写。 
    • xxxyyyzzz
  • 类名接口名:多单词组成时,所有单词的首字母大写。 
    • XxxYyyZzz
  • 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。  
    • xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接。
    • XXX_YYY_ZZZ 

三、注释

  • 用于注解说明解释程序的文字就是注释。
  • 提高了代码的阅读性。
  • Java中的注释格式: 
    • 单行注释
      • 格式: //注释文字
    • 多行注释
      • 格式: /*  注释文字  */   
      • 注意:多行注释内不要加多行注释
    • 文档注释
      • 格式:/** 注释文字 */
  • 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
  • 对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档
      注释是一个程序员必须要具有的良好编程习惯。初学者编写程序可以养成习惯:先写注释再写代码。将自己的思想通过注释先整理出来,在用代码去体现。因为代码仅仅是思想的一种体现形式而已。

实例:

/**
这是我的Hello World程序。
@author 中仔
*/
class Demo
{
	/*
	这是主函数,是程序的入口 
	它的出现可以保证程序的独立运行, 
	*/
	public static void main(String[] args)
	{
		//这是输出语句用于将括号内的数据打印到控制台。
		System.out.println("Hello World");
	}
}


四、常量和变量

1.常量

  • 常量表示不能改变的数值。
  • Java中常量的分类:
    1. 整数常量。所有整数
    2. 小数常量。所有小数
    3. 布尔(boolean)型常量。较为特有,只有两个数值。true false。
    4. 字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
    5. 字符串常量。将一个或者多个字符用双引号(“ ”)标识。
    6. null常量。只有一个数值就是:null.
  • 对于整数:有四种表现形式。
    • 二进制:0,1 ,满2进1.
    • 八进制:0-7 ,满8进1. 用0开头表示。
    • 十进制:0-9 ,满10进1.
    • 十六进制:0-9,A-F,满16进1. 用0x开头表示。
  • 进制的基本转换
    • 十进制  二进制 互转
      • 十进制转成二进制  除以2取余数
      • 二进制转成十进制  乘以2的幂数 
      • 图解如下:

黑马程序员——Java基础---Java语言基础(一)_第1张图片

    • 十进制 八进制 互转,十进制 十六进制互转 
      • 跟转换二进制的方法一样。简单的算法:可以先将十进制转换为二进制,再转换为八进制和十六进制。这就利用了一个八进制位相当于三个二进制位,而一个十六进制位相当于四个二进制位。

黑马程序员——Java基础---Java语言基础(一)_第2张图片

    • 负数的二进制表现形式
      • 对应的正数二进制取反加1。
      • 注:负数的最高位为-1。

黑马程序员——Java基础---Java语言基础(一)_第3张图片

2.变量

  • 变量的概念:
    • 内存中的一个存储区域
    • 该区域有自己的名称(变量名)和类型(数据类型)
    • 该区域的数据可以在同一类型范围内不断变化
  • 变量作用:
    • 用来不断的存放同一类型的常量,并可以重复使用
  • 使用变量注意:
    • 变量的作用范围(一对{}之间有效)
    • 初始化值
  • 变量的生存中期:
    • 变量从定义的位置开始就在内存中活了,  变量到达它所在的作用域的时候就在内存中消失了;
  • 定义变量的格式:
    • 数据类型    变量名  =  初始化值;
  • 注:格式是固定的,记住格式,以不变应万变。
  • 理解:变量就如同数学中的未知数。

3.数据类型 

  • 数据类型图:

黑马程序员——Java基础---Java语言基础(一)_第4张图片

  • Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。
  • 整数默认:int    小数默认:double
  • 基本数据类型:级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
  • 自动类型转换(也叫隐式类型转换)从低级别到高级别,系统自动转的;

例如:

byte b = 3;

int x = 4;

x = x + b;//b会自动提升为int类型进行运算。

  • 强制类型转换(也叫显式类型转换)把一个高级别的数赋给一个别该数的级别低的变量;
例如:

byte b = 3;

b = b + 4;//报错

b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。

  • 注意:

byte b1=3,b2=4,b;

b=b1+b2;*失败

b=3+4;

哪句是编译失败的呢?为什么呢?

b1b2是变量不是具体数值,3和4是具体数值

五、运算符

1.算数运算符

黑马程序员——Java基础---Java语言基础(一)_第5张图片

  • 算术运算符的注意问题
    • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
  • 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 

例如:int x=3510;x=x/1000*1000;  x的结果是:3000

  • “+”除字符串相加功能外,还能把非字符串转换成字符串 ,

例如:System.out.println("5+5="+5+5);//打印结果是:5+5=55:


2.赋值运算符

  • 符号:= , +=, -=, *=, /=, %=
  • 示例:

int a,b,c;  a=b=c =3;

int a = 3;   a+=5;等同运算a=a+5;

  • 思考:short s = 3; s=s+2与s+=2;有什么区别? 

隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,所以
s=s+1; 自然是编译不通过的,提示损失精度必须进行显示类型转换 而s+=2的意思与s = s+2不同,
s=s+2这句先执行s+2然后把结果赋给s,由于1为int类型,所以s+2的返回值是int,编译器自动进
行了隐式类型转换 ,所以将一个int类型赋给short就会出错,而s+=2不同由于是+=操作符,在解
析时候s+=1就等价于s = (short)(s+2),翻番来讲就是  s+=2 <=> s = (s的类型)(s+1)

3.比较运算符

黑马程序员——Java基础---Java语言基础(一)_第6张图片

  • 注:比较运算符的结果都是boolean型,也就是要么是true,要么是false。


4.逻辑运算符

黑马程序员——Java基础---Java语言基础(一)_第7张图片

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
  • “&”和“&&”的区别:
    • 单&时,左边无论真假,右边都进行运算;
    • 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
    • “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
  • 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

5.位运算符

黑马程序员——Java基础---Java语言基础(一)_第8张图片

  • 位运算是直接对二进制进行运算。

黑马程序员——Java基础---Java语言基础(一)_第9张图片

6.三元运算符

  • 格式: (条件表达式)?表达式1:表达式2
    • 如果条件为true,运算后的结果是表达式1
    • 如果条件为false,运算后的结果是表达式2
  • 示例:

     获取两个数中较小的数。

                int x=5,y=4,z;

                z = (x变量存储的就是两个数中较小的数

7.运算符优先级

黑马程序员——Java基础---Java语言基础(一)_第10张图片


六、转义字符

  • 概念:通过 \ 来转变后面字母或符号的含义。
  •  常用转义字符:
    •  \b:退格  
    •  \n:换行
    •  \t:制表符,相当于tab键
    •  \r:回车
    •  \\:表示反斜杠
    •  \':表示单引号
    •  \":表示双引号

------- android培训java培训、java学习型技术博客、期待与您交流! ----------

你可能感兴趣的:(Java)