黑马程序员_java语法1
来源:互联网 发布:编程可以用中文吗 编辑:程序博客网 时间:2024/05/05 16:43
------- android培训、java培训、期待与您交流! ----------
java语言基础组成
关键字、标识符、注释、常量和变量、运算符、语句、函数、数组.
1,标识符:在程序中自定义的一些名称,
由26个英文字母大小写,0-9,_$组成。
定义标识符的规则:1.数字不可以开头.2.不可以使用关键字.
Java中的名称规范:
包名:多单词组成时所有的字母都小写xxxyyyzzz;
类名接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz;
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单 词开始每个单词首字母大写xxxYyyZzz;
常量名:所有字母都大写,多单词时用下划线连接XXX_YYY_ZZZ。
2,注释
注释的作用:1.注解说明解释程序2.调试程序;
a).注释的方式:
1.单行注释方式//........
2.多行注释方式/*......*/
3.文档注释方式/**....*/
b).三种注释之间的关系:
单行注释中能写单行注释;
多行注释中可以加单行注释;
多行注释中不可以加多行注释。
编写程序的习惯:先写注释再写代码。
3,常量
a).常量有整数常量,小数常量,布尔型常量(true,false),字符常量(‘1个数字/字母/符号’),字符串常量(“1个或多个字符”),null常量(null);
b).对于整数,java有三种表现形式:十进制(0-9),八进制(0-7,用0开头表示),十六进制(0-9,A-F,用0x开头表示).
c).计算机表示数据的方式:八个二进制代表一个字节(数据单元),由n多字节去表示数据。
d).八进制就是三个二进制代表一位;十六进制就是四个二进制代表一位。规律:进制越大,表现形式越短。
4,进制的基本转换
十进制转换成二进制:对十进制的树除以2取余数(从下往上写);
二进制转换成十进制:对二进制的树乘以2的幂数(从右开始乘)。
5,负数的二进制:正数的二进制取反加一,取反就是将二进制的1变成0, 0变成1,负数的最高位都是1.
6,变量:就是将不确定的数值进行存储,也就是需要在内存中开辟一个空 间。
a).如何开辟内存空间:通过明确数据类型、变量名称、数据来完成。
b).所谓数据类型有:基本数据类型(数值型(整数类型(字节(byte),短整形(short),整形(int),长整形(long)),浮点类型(单精度(float),双精度(double))),字符型(char),布尔型(boolean))和引用数据类型(类(class),接口(interface),数组([]));
c).整数默认的是int,小数默认的是double。
d).定义变量的格式是:数据类型变量名=初始化值
e).什么时候定义变量:当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储动作。
f).类型转换:自动类型转换(隐式类型转换),强制类型转换(显式类型转换);
7,运算符
a).算术运算符
1.% 取模,所谓模就是余数的意思;
取模的结果有三种情况:
1.左边<右边,结果是左边.
2.左边=右边,结果是0.
3.右边=1,结果是0.
取模的时候如果出现负数,只看被模数(左边).
2.++ 自增,a++ a=a+1
b=a++ 运算顺序是:b=a a=a+1;
b=++a 运算顺序是:a=a+1 b=a;
规律:不管a++,++a ,a的值不会变.
字符串数据和任何数据使用+都是相连接,最终都会变成字符。
b).转义字符
通过\来转变后面字母或者符号的含义。\n:换行;\b:退格,(相当于 backspace键);\r:按下回车键;\t:制表符(相当于tab键)。在Window 系统中,换行是由两个字符来表示\r\n,在Linux系统中:换行\n。
c).赋值运算符
符号有:= += -= /= %= *=
short s=3;
s=s+2和s+=2的区别:
s=s+2会编译失败,因为s会被提升为int类型,运算后的结果还是int 类型,无法赋值给short类型。
s+=2会编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。
d).比较运算符
符号有:== != < > <= >= instanceof
比较运算符的结果都是Boolean类型的,结果只有两种true和false。
e).逻辑运算符
逻辑运算符是用于连接boolean类型的表达式。
&(与):只要两边的Boolean表达式的结果,有一个为false,那么结果 就是false,只有两边都有true,结果才是true。
|(或):两边只要有一个为true,结果就是true,只有两边的结果都为 false,结果才是false。
^(异或):两边相同时,结果是false,两边不同结果是true。
结论:一个数异或同一个数两次,结果还是那个数。
和|不一样的就是当true^true=false。
!(非):!True=false;
&&(双与):俗称短路;
&与&&的区别:&:无论左边是true还是false,右边都参与运算
&&:当左边为false时,右边不运算。
||(双或):|和||的区别:|:两边都参与运算;||:当左边为true时, 右边不运算。
f).位运算符
<<(左移):其实就是乘以2的移动的位数次幂。
>>(右移):就是除以2的移动的位数次幂。
>>:最高位补什么由原来数据的最高位的值而定。如果最高位0,右移后, 用0补空位;如果最高位1,右移后,用1补空位;
>>>(无符号右移):无论最高位是什么,右移后,都用0补.
e).三元运算符
格式:(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果就是表达式1;
如果条件为false,运算后的结果就是表达式2.
8.程序流程控制
a).判断结构
if语句三种格式;
if(){};if{}else{};if{}else if{}else if{}...else{};
if else结构简写格式:变量=(条件表达式)?表达式1:表达式2;(三元运算符)。
三元运算符的好处:可以简化if else代码;弊端:因为是一个运算符, 所以运算完就必须要有一个结果。
b).选择结构
switch语句特点:
1.switch语句中的表达式只接受int、short、byte、char类型.
2.case之间与default是没有顺序的,先执行第一个case,没有匹配的 case执行default.
3.结束switch语句的两种情况:遇到break,执行到switch语句结束.
4.如果匹配的case或者default没有对应的break,那么程序会继续向 下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
if语句与switch语句的应用区别:
①:如果判断的数值不多,而是符合byte、short、int、char这四种类 型的话,就用switch语句。
②:对于区间判断,而且结果是boolean类型,用if语句。
c).循环结构
代表语句:while;do while;for;
1、while:先判断条件,只有条件满足才执行循环体。
2、do…while:先执行循环体,再判断条件,条件满足,在继续执行循 环体。无论条件是否满足,循环体至少执行一次。
3、for(初始化表达式;循环条件表达式;操作操作表达式){
执行语句
}
4、无限循环的最简单表现形式:
for(;;){}
while(true){}
a).While与for的区别:
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增 量定义在for语句中。那么该变量只在for语句内有效。for语句执 行完毕。该变量在内存中被释放。
2,for和while可以进行互换。如果需要定义循环增量。用for更 为合适。
总结:
b).什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
c).循环嵌套
其实就是语句中还有语句,形象的说法就是大圈套小圈。
不是规律的规律:
尖朝上,可以改变条件。让条件随着外循环变化。
尖朝下,可以初始化值,让初始化随着外循环变化。
9.其他流程控制语句
break(跳出) continue(继续)
break语句应用于选择结构和循环结构;
continue语句应用于循环结构。特点:结束本次循环,继续下一次 循环。
break和continue单独存在时,下面不可以有任何语句,因为执行 不到。
10.小练习
1.最有效的方法计算2*8;
答:2<<3
2.对两个整数变量的值进行互换;
方法一:通过第三方变量
int a=3,b=8;
int temp=a;
a=b;
b=temp;
方法二:(容易超出范围)
n=n+m;
m=n-m;
n=n-m;
方法三:(技巧性方式)
n=n^m;
m=n^m;
n=n^m;
结论:一个数异或另一个数两次,还是原来那个数。
3.二进制转十六进制
inta=60,temp;
inta1=60&15;
System.out.println((char)(a1-10+'a'));
temp=a>>4;
int a2=temp&15;
System.out.println(a2);
4.获取1-10的和
1.用的for循环来实现:
intsum = 0;
for(intx=0; x<=10; x++)
{
sum+= x;
}
System.out.println("forsum = "+sum);
2.用的while循环来实现:
int sum = 0;
int x = 1;
while(x<=10)
{
sum= sum + x;
x++;
}
System.out.println("sum="+sum);
这就是累加思想。
原理:通过变量记录住每次变化的结果。
通过循环的形式。进行累加动作。
5.打印1-100之间8的倍数的个数.
int count = 0;
for(intx=1; x<=100; x++)
{
if(x%8==0)
//System.out.println("x="+x);
count++;
}
System.out.println("count="+count);
这就是计数器思想。
原理:通过一个变量记录住数据的状态变化。
也是通过循环完成的。
6.打印等腰三角形
class for{
publicstatic void main(String[] args)
{
for(int x=0; x<5 ;x++ )
{
for(inty=x+1; y<5 ; y++)
{
System.out.print("");
}
for(intz=0; z<=x ; z++)
{
System.out.print("*");
}
System.out.println();
}
}
}
------- android培训、java培训、期待与您交流! ----------
- 黑马程序员_java语法1
- 黑马程序员_Java语法
- 黑马程序员_java语法
- 黑马程序员_Java基础语法1
- 黑马程序员_java基础(语法)
- 黑马程序员_java语法基础
- 黑马程序员_java语法2
- 黑马程序员_Java基础语法
- 黑马程序员_java基础语法
- 黑马程序员_java基本语法
- 黑马程序员_Java基础语法
- 黑马程序员_Java基础语法
- 黑马程序员_java基础语法
- 黑马程序员_java 基础语法
- 黑马程序员_java基础_java基础语法
- 黑马程序员_Java基础语法(一)
- 黑马程序员_Java基础语法(二)
- 黑马程序员_Java基础语法2
- 分治法、动态规划、贪心法比较
- camera摄像原理之四:曝光和GAMMA
- 利用WinDbg找出程序崩溃的代码行号
- Delphi中载入GIF动画
- 一些工具 covim, Topcoat, Runscope, Ghost
- 黑马程序员_java语法1
- 没有技术合伙人和外部投资,照样一年内在硬件创业领域拼下千万营业额
- POJ 1007 DNA
- make: execvp: /xxx/u-boot-xxx/mkconfig: Permission denied .
- 区间树上的重叠区间查找算法
- revit2009中国样板,注册机
- Minesweeper UVA- 这尼玛坑爹的空行
- Win7 CreateRemoteThread 另类使用方法
- 黑马程序员高级视频学习笔记IO输入输出流File类