黑马程序员-JAVASE入门(组成部分1变量,函数等)

------- android培训java培训、期待与您交流! ----------

java语言组成部分

1标识符 2关键字
3注释 4常量和变量
5运算符 6语句
7函数 8数组


1:标识符

定义:java中对各种变量,方法和类的命名都叫标识符。
说的直白一点,在java中凡是自己起的名字都叫标识符,都需要遵守标识符规则。
组成:由26个英文字母大小写,数字:0-9 和符号:_ $
定义合法标识符规则:
1 ,数字不可以开头。
2 ,不可以使用关键字。
Java中严格区分大小写,定义标识符不限制长度。
注意:在起名字的时,为了提高阅读性,要见名知意。
另外还有一点:驼峰标识DemoDemo

合法的标识符
不合法的标识符
HelloWorld
Hello World
_123
2B
Demo
Demo#
Bj_czbk$0331
a12.3

Java中的名称规范:
包名:多单词组成时所有字母都小写。
xxx.yyy.zzz  www.itcast.cn 
类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz 
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ



2:关键字

用于定义访问权限修饰符的关键字
private
protected
public

 

 

用于定义类,函数,变量修饰符的关键字
abstract
final
static
synchronized

 

用于定义类与类之间关系的关键字
extends
implements

 

 

 

用于定义建立实例及引用实例,判断实例的关键字
new
this
super
instanceof

 

用于异常处理的关键字
try
catch
finally
throw
throws
用于包的关键字
package
import

 

 

 

其他修饰符关键字
native
strictfp
transient
volatile
assert




关键字的定义和特点
定义: Java 语言赋予了特殊含义的 , 用于专门用途的单词。
特点:关键字中所有字母都为小写
用于定义数据类型的关键字
class
interface
byte
short
int
long
float
double
char
boolean
void

 

 

 

 

用于定义数据类型值的关键字
true
false
null

 

 

用于定义流程控制的关键字
if
else
switch
case
default
while
do
for
break
continue
return

 

 

 

 



3:注释

(1)注解说明代码的,用于给人看的。
(2)注释的分类
*单行注释 //
*多行注释 /* */
*文档注释 /** */
(3)注释的用途
*注解说明文字。
*用于调试代码。

4:常量和变量

4.1:常量
常量表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔型常量。较为特殊,只有两个数值。true false boolean
4,字符常量。将一个数字字母或者符号用单引号( ‘ ’ )标识。如:'a','+','5'都是字符常量,而且只能封装一个字符
5,字符串常量。将一个或者多个字符用双引号标识。如:“asf123ad”,"sdfa"
6,null常量。只有一个数值就是:null.
对于整数:有四种表现形式。
二进制:0,1 ,满2进1.
八进制:0-7 ,满8进1. 用0开头表示。
十进制:0-9 ,满10进1.
十六进制:0-9,A-F,满16进1. 用0x开头表示。

4.1.1: 进制的基本转换
十进制  二进制 互转
•十进制转成二进制  除以2取余数
•二进制转成十进制  乘以2的幂数
十进制 八进制 互转
十进制 十六进制 互转
八进制为了区分十进制书写的时候以0开头
十六进制一般一0x开头
负数的二进制表现形式
•对应的正数二进制取反加1

4.2:变量
变量的概念:
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
用来不断的存放同一类型的常量,并可以重复使用
使用变量注意:
变量的作用范围(一对{}之间有效)
初始化值
定义变量的格式:
数据类型    变量名  =  初始化值;
注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。

4.2.1变量的分类
按照声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部类的内部定义的变量
注意:类外面与类对应的大括号外面不能定义变量
按照所属的数据类型划分:
基本数据类型变量
引用数据类型变量

局部变量和成员变量:
class Demo{
int x = 5;//成员变量
public static void main(String[] args){
int y = 6;//局部变量
}
}
注意:成员变量可以不赋值,因为java虚拟机会给成员变量赋默认值
局部变量必须赋值,否则会出现编译错误


基本数据类型和引用数据类型:




基本数据类型介绍:

基本数据类型的取值范围及占用内存大小和默认值:
数据类型
关键字
在内存中占多少字节
取值范围
默认值
布尔型
boolean
没有明确指定
ture,false
false
字节型
byte
1个字节(8位)
-128~127
0
短整型
short
2个字节(16位)
-2(15)~2(15)-1
0
整型
int
4个字节(32位)
-2(31)~2(31)-1
0
长整型
long
8个字节(64位)
-2(63)~2(63)-1
0
字符型
char
2个字节(16位)
0~2(16)-1
‘\u0000’
单精度浮点型
float
4个字节(32位)
1.4013E-45~3.4028E+38
0.0f
双精度浮点型
double
8个字节(64位)
4.9E-324~1.7977E+308
0.0


1:布尔型boolean:
lboolean 类型适于逻辑运算,一般用于程序流程控制
lboolean类型数据只允许取值true或者false,不可以0或者非0的整数替代true和false,这点和c语言不同.

用法举例如:boolean b = true;
当我们学习判断语句或者循环语句的时候可以用到

2:字符型char:
char型数据用来表示通常意义上"字符"
字符常量为用单引号括起来的单个字符,例如:char c = 'a';char ch = '中';
java字符采用的Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:
char c1 ='\u51a9'; 
//转义字符\u代表后面的四位数是十六进制的编码
注:Unicode是全球语言统一编码
java语言中还允许使用转义字符'\'来将其后的字符转为其他的含义,例如:
char c2 ='\n';//\n代表这换行

转义符号:\
\t:制表符
\n:换行符
\r:回车符
\‘ 单引号字符
\” 双引号字符
\\ 反斜杠字符
注:windows里面的回车换行是由两个符号组成\r\n
Linux的回车符\n组成的
转义字符需要写在单引号或双引号里用+号连接
转义字符代表的是一个字符可以放在char里

3:整数类型:byte,short ,int ,long
java语言整型常量的四种表示形式:
十进制整数,如:23,-34,0等
八进制整数,要求以0开头,如:023.
十六进制整数,要求0x或0X开头,如0x23.
jdk1.7 以后二进制整数 , 二进制整数是通过字面量在数字前面添加 0B 或者 0b, 0b110(1.7 的新特性 )
java语言的整数类型常量默认为int型,声明long型常量可以后加'l'或'L',如:
int x = 600;//正确  long l = 2147483648L//必须加L否则出错
(JDK1.7新特性:可以在数字下用下划线分隔开如:数字500000000可以写成500_000_000)
错误写法: _100,120_,0b_101,0x_da0 都是非法的 !

4:浮点类型:float和double
java浮点型常量有两种表示形式
十进制形式 例如:314.0    0.314
科学计数法例如:3.14E2(3.14*10^2)  3.14E-2(3.14/(10^2))
java浮点型常量默认为double,如果声明一个常量为float型,则需在数字后面加f或F如:
double d = 12.3;//正确float f = 12.3f;//必须加f否则出错

float
范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;
精度为float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double
范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
精度为double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。


类型转换:自动类型转换和强制类型转换
boolean类型不能转换成其他类型
整型,字符型,浮点型的数据在混合运算中相互转换时遵循以下的原则:
容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:
byte,short,char->int->long->float->double
byte,short,char 之间不会互相互换 , 他们三者在计算时首先转换成 int 类型

容量大的数据类型 转换为容量小的数据类型时,要加上强制转换符,但 可能造成精度降低或溢出;使用时要格外注意
有多种数据类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算.
如果想把一个超出了 float 的取值的 double , 强转成 float 是不可以的 , 会出 Infinity( 无穷大 ) 提示

自动类型提升
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。

System.out.println('a'+1);结果是?(因为char类型低于int。所以会强制把'a'转换成int类型、输出结果是98)


5:运算符

1:算术运算符
2:赋值运算符
3:比较运算符
4:逻辑运算符
5:位运算符
6:三元运算符

1:算术运算符

      正号:+             负号:-                      

      加法:+              减法:-              乘法:*              除法:/              取模:%  (就是取除法运算的的余数)

      自增:++,即自加1,可至于前或后;如:++a(a先自增,然后再和a相加),a++(先和a相加,a再自增)

      自减:- -,即自减1, 可至于前或后;如:- -a(a先自减,然后再和a相减),a- -(先和a相减,a再自减)

      字符串相连:+

      %的用途:任意数%2 结果是要么0,要么1。用于切换条件对于
      除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

2:赋值运算符

符号:= , +=, -=, *=, /=, %=
事例:
short s = 3;
s=s+2;
s+=2;    
有什么区别?    
s += 2有自我提升的功能,而 s = s + 2;可能就会编译失败。比如,s为short型的值,对于后者那么编译时就会报错:可能损失精度。对于前者,会将2强转为short型,在与s的值相加,然后再赋值给s。

3:比较运算符

符号: ==、!=、< 、> 、<= 、>= 、instanceof
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” 。

4:逻辑运算符

符号:& ,&&, |,  ||,  ^, !

与: &; 如:true & false 为false;

或:|;    如:true | false为true;

非: !;    如:  ! true 为false

异或: ^; 如:true ^ false 为true(真异或真为假,其他和 | 同理)

短路:&&:只要有一边为false,结果则为false

              ||:只要有一边为true,结果则为true


5:位运算符

位运算符
运算符
运算
范例
<<
左移
3 << 2 = 12 --> 3 * 2 * 2=12
>>
右移
3 >> 1 = 1  --> 3/2=1
>>>
无符号右移
3 >>> 1 = 1 --> 3/2=1
&
与运算
6 & 3 = 2
|
或运算
6 | 3 = 7
^
异或运算
6 ^ 3 = 5
~
反码
~6 = -7

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



<<
空位补0,被移除的高位丢弃,空缺位补0。
>>
被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。
>>>
被移位二进制最高位无论是0或者是1,空缺位都用0补。
&
二进制位进行&运算,只有1&1时结果是1,否则是0;
|
二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^
相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1

例子:
1.最有效率的方式算出2乘以8等于几?答案:2<<3
2.对两个整数变量的值进行互换(不需要第三方变量)
	 答案   n = n ^ m;

		m = n ^ m;//(n^m)^m;

		n = n ^ m;//n ^ (n ^ m)


6:三元运算符
格式
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值