黑马程序员_java基础(语法)

黑马程序员_java基础(语法)

 

1.     常量

1>  整数的几种进制

十进制: 由0到9组成, 逢十进一. 直接写数字即可.

二进制: 由0和1组成, 逢二进一. 以0b开头.

八进制: 由0到7组成, 逢八进一. 以0开头. 为了简化二进制的书写    

十六进制: 由0到9和A到F组成, 逢十六进一. 以0x开头.

 

进制转换:

十进制转其他进制: 除法, 将十进制数除以进制数, 取余数, 直到除到0为止, 将所有余数反转就是二进制值

其他进制转十进制: 乘法, 给要转换的数编号, 编号从低位开始,从0开始, 用每一位上的数乘以进制数的编号次方, 再相加

二进制转八进制: 二进制每3位一看, 就是八进制, 每3个二进制数对应1个八进制

八进制转二进制: 八进制的每一位上的数转为3个二进制数, 连在一起就是二进制的值

十六进制转二进制: 每1位十六进制转为4位二进制

 

2>  字符的几种码表, 特殊字符

码表:

a.  ASCII码表:每个字符占1字节;

b.  GB2312码表:兼容ASCII,英文占1个字节(正数),中文占2个字节(由两个负数组成)

c.  GBK,GB18030码表:兼容GB2312,增加了一些中文(生僻字),英文1字节(正数),中文占2字节(首字节负数,第二个可正可负)

d.  Unicode码表:世界各国的官方语言,所有字符都占2字节,且最前面有2字节的标志位。

e.  UTF-8码表:比Unicode中的字符更多,英文占1字节,中文占3个字节,且最前面有3个字节标志位。

f.  ISO8859-1码表:西欧码表,不支持中文

 

特殊字符:

\r(回车)

\n(换行)

\t(制表)

\b(退格)

\',\",\\

 

2.     变量

基本数据类型:(8)

byte

     字节

1字节

short

短整型

2字节

int

整型

4字节

long

长整型

8字节

float

浮点

4字节

double

双精度

8字节

char

字符

2字节

booleam

布尔

1字节

 

引用数据类型:类 + 数组 + 集合

类型转换:

自动类型提升:byteshortchar类型参与数学运算后,会自动提升为int型。

强制类型转换:本来是此类型的数据,因为继承的关系,导致类型不样,因此需通过“(类型)数据”进行强制转换

字符串串联:字符串可以用加号和其他类型数据进行串联, 就是将字面值连接在一起

变量的生命周期和作用域:

变量的生命周期从定义时开始, 到超出范围结束.

变量定义在哪一级大括号中, 它就作用在哪个范围中.

3.     运算符

算数运算符

用来进行数学运算: +, -, *, /,%, ++, --

整数除法忽略小数部分

++在前就是先运算后取值, ++在后则是先取值后运算

赋值运算符

用来给变量赋值

=, +=, -=, *=, /=, %=

x += y; 类似于 x = x + y; (不拿出来进行运算,内部自增,不会提升数据类型,直接改值)

比较运算符

用来比较两个值的关系, 都是二元运算符, 比较两边的值得到一个布尔值

>, <, >=, <=,==, !=, instanceof

注意==不要写成=

4.逻辑运算符

判断一个逻辑是否成立, 得到的结果是布尔

!, ^, &, |, &&,||

&和&&都是做与运算, 运算符两边都为true, 结果才是true.&&具有短路效果, 如果前半是false就短路, 后半不执行.

|和||都是做或运算, 运算符两边只要有一个true, 结果就是true. ||具有短路效果, 如果前半是true就短路, 后半不执行.

位运算符

对数字的二进制每一位进行运算

&, |, ^, <<(最低位补0), >>(最高位补与以前数相同的数), >>>(最高位补0)

 

三元运算符

三元运算符?:可以操作3个元素, 第一个元素是布尔, 后面两个可以是任意类型

通常用在两个值之间取一个的时候, 根据布尔值判断, 布尔值是true就取:左边, false则取右边

 

运算符优先级(算术运算符、位运算符、比较运算符、逻辑运算符、赋值用算符,且&高于|,单&高于双&&。)

*/%优先于+-

单&高于双&&,&&优先与||

技巧:

a.想取小数的小数位(%1);

b." ++ "与"+"连一块,会先取++

c.运算时值从左到右,左边先赋值,右边有改动再赋值

int a = 2;

int b = a + 3* a++;

结果:a = 3; b = 8;

 

4.     语句

选择结构

a. if … else …

b. switch语句 : 应用场景:小范围判断

switch中的判断参数:

JDK5之前只能是int(byte,short,char),

JDK1.5之后增加枚举,

JDK7后增加String

循环结构

a. while() 用于不确定多少次;(典型:读取键盘输入的数据)

b. do ... while(); 

c. for( 首次执行;每次判断 ; 循环体执行完执行)

 

注:while 与 for根本区别是:for里的循环量外不能获取,而while可以

5.     函数

定义函数:为提高代码的利用性,一段代码在多个地方使用,就定义为函数;

函数的组成:由4个部分组成, 返回值类型 函数名 (参数列表) {函数体 };

调用函数:函数使用"函数名(实参)"形式调用, 调用的时候实参必须和形参完全匹配(个数, 类型, 顺序),函数如果定义了返回值, 调用结束后可以得到函数中返回的数据

函数的重载:函数名相同,参数不同(个数、顺序、类型、),返回值无关(相同功能,需传入不同数据)

匹配实参数类型会自动提升、匹配、提升会一级一级,多个参数时,调用的实参数类型与形参类型提升后多个都能匹配,导致会报错。

 

6.     数组

定义数组:

类型[] 变量名 = {数据1, 数据2, 数据3, ...} 只能用于给变量初始化

类型[] 变量名 = new 类型[] {数据1, 数据2, 数据3, ....}  任何地方都可使

类型[] 变量名 = new 类型[长度] 同上,只不过初始化是默认的

获取数组中的元素:变量名[索引]

给数组中的元素赋值:变量名[索引] = 数据遍历数组

遍历数组:定义for循环, 循环变量从0开始, 每次+1, 直到变量等于length-1为止,每次用变量当作索引获取数组中一个元素。Jdk1.5以后可使用增强for循环

 

7.     堆、栈

a.  方法:执行方法就会开辟栈内存,每个方法就有一块栈空间来存储参数

b.  数组:数组存在堆内存中,栈内存中只存数组的地址(引用);

int[] array = newint[] {2,3,4};

System.out.println(array);//打印出的是array的内存地址

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值