黑马程序员-----基本语法
2015-08-19 17:52
281 查看
------ <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一、标识符
1、Java语言基础由关键字、标识符、注释、常量和变量、运算符、语句、函数和数组等组成。注:Java中严格区分大小写。
2、组成:由26个英文字母大小写,数字:0-9,符号:_、组成使用规则:1)数字不可以开头。2)不可以使用关键字。3)不可以包含“、组成
使用规则:
1)数字不可以开头。
2)不可以使用关键字。
3)不可以包含“_、”以外的特殊符号,其中的空格就是特殊符号。
3、Java中的名称规范:
1)包名:多单词组成是所有字母都小写。例:xxxyyyzzz
2)类名接口名:多单词组成时,所有单词的首字母大写。例:XxxYyyZzz
3) 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。例:xxxYyyZzz
4) 常量名:所有字母都大写。多单词时每个单词用下划线连接。例:XXX_YYY_ZZZ
二、注释
1、单行注释
格式://注释文字
2、多行注释
格式:/注释文字/
3、文档注释
格式:/*注释文字/
**注:**1)可以使用注释对代码中的错误进行定位。当程序运行报错时,将某些代码注释掉,然后重新编译运行。如果程序不再报错,那么说明注释掉的部分代码中包含错误代码。
三、常量和变量
1、常量:一直不会改变的量称为常量。
2、变量:
成员变量:在类体中定义的变量
局部变量:在类的方法体中定义的变量
例: public classA { 成员变量; Public static void main() { 局部变量;} }
3、局部变量可以与成员变量的名字相同,此时成员变量将被隐藏(即这个成员变量在此方法中暂时失效),如果想要调用成员变量,需要使用“类名.静态变量”调用。
例:package com.shan; public class Demo36 { static int times=3; public static void main(String[] args) { int times=4; System.out.println("times的值是"+times); //输出局部变量的值 System.out.println("times的值是"+Demo36.times);//输出静态变量,即成员变量的值。类名.静态变量的形式调用 } }
四、进制的基本转换
1、十进制转二进制。
原理:对十进制数进行除2运算。
例:将十进制6转换成二进制
6/2=3……0
3/2=1……1
1/2=0……1
6转成二进制是110
2、二进制转十进制。
原理:二进制乘以2的过程。
例:将二进制110转换成十进制
110=1*2*1+1*2*2=6
110转成十进制是6
3、十进制转八进制。
原理:八进制,其实就是二进制位,3个二进制位,1个八进制位。
例:求十进制数43的八进制数。
十进制43
二进制101011
三位分割000-101-011
八进制053
因此,43(十进制)=101011(二进制)=053(八进制)。
4、十进制转十六进制。
原理:十六进制,其实就是二进制位,4个二进制位,1个十六进制位。
例:求十进制数43的十六进制数。
十进制43
二进制101011
四位分割0010-1011
十六进制2(2)11(B)
因此,43(十进制)=101011(二进制)=0x2B(十六进制)
5、负数的进制
原理:负数的二进制表现形式就是对应的正数二进制取反加1。
例:求-6的二进制表现形式,其实就是对应的正数6的二进制取反加1。
6
0000-0110
取反1111-1001
加1+0000-0001
——————-
1111-1010
注:负数的二进制最高位永远是1。
五、基本数据类型
1、八种基本类型: 占内存大小
Byte 1个字节
short 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节
char 2个字节
Boolean
2、在定义long型变量时,结果必须加上“L”或“l”(最好加“L”,防止弄混)
3、在定义float型变量时,结果必须加上“F”或“f”,否则,系统自动将其定义为double型变量
4、类型之间的转换
1)向上转型:小的类型可自动转换为容量大的数据类型
例如:byte,short,char → int → long → float → double
注:byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。
boolean 类型是不可以转换为其他基本数据类型。
2)向下转型:大的类型向容量小的数据类型转换,强转,也称为强制类型转换
5、常见问题:
以下代码哪个是正确的?为什么? a. byte b = 1 + 1; b. byte b = 1; b = b + 1; c. byte b = 1; b = b += 1; d. byte b = 1; b = ++b;
分析:a. 正确。因为右边的数值运算完自动完成了强转操作。 b. 不正确。因为第二条语句中b+1运算完之后类型会提升成int型,在内存中占4个字节,而b仍是byte型,装不下int型数据,会造成数据丢失精度。 c. 正确。因为b = b += 1;相当于把b += 1的结果赋值给b,而b += 1相当于(byte)(b+1),运算符+=在给b赋值时自动完成了强转操作。 d。正确。因为++b相当于(byte)(b+1),运算符++在给b赋值时自动完成了强转,所以编译也没问题。
6、运算符
算术运算符(+ 、— 、* 、/ 、%)
赋值运算符(= 、+=、-=、*=、/=,、%=)
关系运算符(>、>=、<、<=、!=)
条件运算符(&&、||、!&、|、^)
位运算符(&、|、>>、<<、<<<、>>>)
7**、总结:**
1)&:全真为真(只有两边都为true,结果为true)
|:全假为假(只有两边都为false,结果为false)
^:(异或)两边相同,结果为false,两边不同,结果为true
2)&和&&的特点:
&:无论左边是true还是false,右边都运算。
&&:当左边为false时,右边不运算。
3)|和||的特点:
|:两边都参与运算。
||:当左边为true时,右边不运算。
4)<<:相当于乘以2的倍数
:相当于除以2的倍数
最高位补什么由原有数据的最高位值而定。
如果最高位为0,右移后,用0补空位;如果最高位为1,右移后,用1补空位;
:(无符号右移)无论最高位是什么,右移后,都用0补。
5)运算符的优先级:
增量和减量运算<算术运算<比较运算<逻辑运算<赋值运算
六、流程控制
1、条件语句:
1)if语句
If语句有三种:if语句、if-else语句、if-else-if-else语句。
代码实现:
Public class IfTest() {public static void main(String[] args) {int score=95; if(score>=90) System.out.println(“成绩优异”); if(score>=60) System.out.println(“成绩合格”); else System.out.println(“成绩不合格”); } }
2)switch-catch语句
使用这个语句,需要注意:
表达式的计算结果类型只能是byte、short、int、char这四种之一。
每个case语句后面的语句块结束时用break来结束分支。
Default语句可以放在 switch语句的任意位置,是默认选择,即没有一个case语句满足条件时,就会执行default语句。
格式:
switch(表达式)
{case 值1:
功能代码;
break;
case 值2:
功能代码;
break;
case 值3:
功能代码;
break;
…..
default:
功能代码;
break;
}
2、循环语句:
1)while语句
特点:先判断,在执行
格式:while(循环条件)
{循环体;}
2)do-while语句
特点:先循环,在判断
格式:
do
{循环体;}
while
{循环条件}
3)for语句
格式:for(初始化语句;循环条件;更新计数器语句)
{循环体;}
/* 等腰星形 */ class Demo{ public static void main(String[] args){ for(int x=0;x<5;x++){ for(int y=x;y<5;y++){ System.out.print("-"); } for(int z=0;z<=x;z++){ System.out.print("* "); } System.out.println(); } } } ` /*数字的输出*/ class Demo{ public static void main(String[] args){ for(int x=1;x<=5;x++){ for(int y=1;y<=x;y++){ System.out.print(y); } System.out.println(); } } } /*九九乘法表*/ class Demo{ public static void main(String[] args){ for(int x=1;x<=9;x++){ for(int y=1;y<=x;y++){ System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } }
—— android培训、java培训、期待与您交流! ———-
相关文章推荐
- iOS面试题二
- 黑马程序员——IO(对象序列化、管道流、其他流对象)
- 黑马程序员-----面向对象
- 一位硕士毕业生三个月求职经历与经验的结晶
- 黑马程序员—泛型
- 剑指offer——面试题28:字符串的排列(递归)
- iOS面试题一
- 每个程序员1小时内必须解决的5个编程问题
- 黑马程序员---java基础之集合Set
- 黑马程序员—集合
- 培养职业素质
- 黑马程序员-java基础-代码块
- 天柳投资股份有限公司大连分公司-面试总结
- 黑马程序员 反射
- 黑马程序员-java之快速排序的实现
- 程序员必看的书
- 作为码农,我们为什么要写作
- 程序员的几个成长阶段
- 黑马程序员—基本数据类型包装类和String类
- .Net程序员安卓学习之路6:等待条