--------------------- android培训、java培训、java学习型技术博客、期待与您交流! -------------------
0小小论述:
终于开始做新的笔记,过多的文字笔记稍微有点乏味,编程还是代码来的更实在一些。随着这时基础部分,但是在大学期间也没有学的这么细致,相比笔记只是略懂一二,现在会更加努力的把每一部分笔记作好,把每一部分基础学好,OK,开始吧!本篇主要讲述:注释、标示符、常量和变量、进制、运算符关键字。
1 注释:
每种编程语言都有属于自己的注释规范,Java语言的注释有这两种,单行注释和多行注释。单行注释更适合用于解释某一句语句,当然也可以简单地注释某一段语句。用 “//注释的话语” 形式表示。多行注释用 “/*注释的话语*/” 形式来表示。看下面的例子解析:
- //下面是一个简单的Java小程序
- class Demo
- {
- /*
- main方法是一个静态方法,参数是一个字符串数组类型的,
- 没有返回值。是程序的入口。
- */
- public static void main(String[] args)
- {
- System.out.println("我要去黑马!");//这是一个输出语句;
- }
- }
注释的用法很简单,但也有需要注意的地方。当用到多行注释时,/* 注释语句/* */ 注释语句 */ 这种写法是不允许的,会出现错误,好在Java的集成开发环境会有错误提示。
2标识符:
@整数型常量,包含所有整数。
@小数型常量,包含所有小数。
@布尔型常量,只有两个数值:true和false。
@字符型常量,将一个数字、字母或者符号用单引号(' ')标识。
@字符串常量,将一个或多个字符用双引号(" ")标识。
@null常量,只有一个值就是null。
变量 实在内存中开辟的一个空间,将不确定的数据进行内存存储。也就是说,要想使用变量就要在内存开辟空间,要定义变量名称来用。空间开皮厚,该空间只能存放同一种类型的数据,若是整数都是整数,若是字符都是字符,要分空间类型,即所定义的 变量名称 的类型,也就是数据类型。Java中对类型的划分是非常细致的。
使用变量有三个要素:明确数据类型、变量名称和数据。在Java中有各种类型的定义关键字:
——整数类型(byte、short、int、long)
——数值型-|
| —— 浮点类型(flost、double)
——基本数据类型-——字符型(char)
| |
| ——布尔型(boolean)
@数据类型-
| —— 类(class)
| |
——引用数据类型- ——接口(interface)
|
——数组( [ ] )
@其中整数型的Java默认: int,小数型的Java默认:double。
@定义变量,简单的例子:int num=9;//定义一个int类型的整数num,数值是9; char ch='h';//定义一个字符'h'; double d=3.14;//定义一个double类型的小数,数值是3.14;既然是变量,那么其空间可以被重新利用,int num=9;之后再定义num=10;num的值就变成了10,折是变量的特带你,以不变(变量名称)应万变(数值)。
常量和变量有了,接下来就是用它们。运算符就是在用常量或者变量进行运算时,经常用到的符号,目前常用的一共有10种:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、移位运算符、三元运算符、逗号运算符、字符串运算符、转型运算符。
@算术运算符:最常见的加、减、乘、除、余,在Java中是+、 -、 *、 /、 %。/是取除完的整数部分,%是取余数部分。Java中还有功能更加强大的算术运算符,++、--运算符,++是自加,分为前自加和后自加,如int i=1;i++;++i;自减用法也是一样。用代码来演示++和--的用法:
- <span style="font-size:18px;">class AddReduce
- {
- int i=8;//定义一个整数8,挺吉利的数字。
- public static void main(String[] args)
- {
- System.out.println("i="+(i--));//后自减
- System.out.println("i="+(--i));//前自减
- System.out.println("i="+(i++));//后自加
- System.out.println("i="+(++i));//前自加
- }
- }
- /*运算结果是:
- a=8
- a=6
- a=6
- a=8
- */</span>
@赋值运算符:就是"=",在java中不是相等的意思,而是把右边的值赋给左边的变量。如int num=9;就是把9赋给变量num。
特点是 可以进行连续赋值,原因:java中的赋值是具有返回值特点的,如a=b;相当于一个表达式(称为赋值表达式),该表达式返回b的值。
如:int a=b=c=d=12;//连续进行复制操作
相当于:int a=(b=(c=(d=12)));//d=12;表达式返回值为12,再赋给c,以此类推,完成连续赋值操作。
■注意:
boolean b=true;
if(b=true)//把条件写成true==b会更好,若写错:true=b 编译不通过。
System.out.println("a");
@关系运算符:包括">"(大于)、"<"(小于)、">="(大于等于)、"<="(小于等于)、"=="(等于)、"!="(不等于),关系运算符的运算结果是布尔型(boolean)的,结果只有true和false。示例代码:
- <span style="font-size:18px;">class TrueFalse
- {
- boolean b;
- public static void main(String[] args)
- {
- System.out.println("b="+(1>2));
- System.out.println("b="+(1<2));
- System.out.println("b="+(1==2));
- System.out.println("b="+(1!=2));
- System.out.println("b="+(1<=2));
- System.out.println("b="+(1>=2));
- }
- }
- /*运算结果是:
- b=false
- b=true
- b=false
- b=true
- b=true
- b=false
- */</span>
@逻辑运算符:逻辑运算符有三种,非别是"&&"(双与)、"||"(双或)、"!"(非)。示例代码:
- <span style="font-size:18px;">class NotAndOr
- {
- public static void main(String[] args)
- {
- int a=10;
- int b=21;
- int c=11;
- System.out.println("!(a>b):"+!(a>b));
- //双与&&运算符,当判断第一个条件为false时,就不进行后面的判断
- System.out.println("a既大于b又小于c么?:"+((a>b)&&(a<c)));
- //双或||运算符,当潘达U难第一个条件为true时,就不进行后面的判断
- System.out.println("a大于b或小于才么?:"+((a>b)||(a<c)));
- }
- }
- /*运算结果是:
- !(a>b):true
- a既大于b又小于c么?:false
- a大于b或小于才么?:true
- */</span><span style="font-size: 18px;">
- </span>
结果也是一目了然,对于逻辑运算符的用法也是比较简单的。
@位运算符:位运算符主要针对二进制进行运算,包括"&"(与)、"|"(或)、"~"(非)和"^"(异或),和逻辑运算符有些容易混淆。位运算符主要针对两个二进制数的位进行运算。二进制数满2进1,用0和1表示,如:10110100、110等。"&"(与)运算符:两个二进制数中对应的位数都为1时,结果为1,否则结果为0。"|"(或)运算符:两个对应为数的数有一个为1或两个都为1时结果就为1,否则结果为0。"~"(非)非运算符:属于单目运算符,对一个二进制数进行操作,位是0结果为1,位为1结果位0。"^"(异或)异或运算符:两个二进制数中对应为数相同为0,不同结果为1。示例代码:
- <span style="font-size:18px;">class BitOperation
- {
- public static void main(String[] args)
- {
- int a=10;
- int b=12;
- System.out.println("a|b="+(a|b));
- System.out.println("a&b="+(a&b));
- System.out.println("~a="+(~a));
- System.out.println("a^b="+(a^b));
- }
- }
- /*运算结果是:
- a|b=14
- a&b=8
- ~a=-11
- a^b=6
- */</span>
原理:2的2进制表现形式: 00000000 00000000 00000000 00000010
求非后:11111111 11111111 11111111 11111101(求非后为负数)
求非后其实就是得到的结果,只是负数的2进制不能直接转化成10进制,需要先求得其绝对值,再取得相反数。
求绝对值:
原理:求非后的二进制数取反加
1--->00000000 00000000 00000000 00000010
+00000000 00000000 00000000 00000001
_____________________________________
00000000 00000000 00000000 00000011
得到的数值为3,再取相反数,即为-3,就是得到的~2的运算结果。
@移位运算符:一位运算符有左移位和右移位。移位运算符也是针对二进制的"位",左移位是"<<",右移位有">>"(带符号右移)、">>>"(不带符号右移)。
所谓的移动是数串相对于看不见的小数点的移动,示例代码:
- <span style="font-size:18px;">class ShiftOperator
- {
- public static void main(String[] args)
- {
- int a=2;
- int b=3;
- int c=-16;
- int d=8;
- System.out.println("a左移b位:"+(a<<b));
- System.out.println("a右移b位:"+(a<<b));
- System.out.println("c左移a位:"+(c<<a));
- System.out.println("a带符号右移b位:"+(c>>d));
- System.out.println("a无符号右移b位:"+(c>>b));
- }
- }
- /*
- 运行结果:
- a左移b位:16
- a右移b位:16
- c左移a位:-64
- a带符号右移b位:-1
- a无符号右移b位:-2
- */
int i=88>>32;
long l=67<<64;
移位后的结果还是原值,原因:int是32位的,java的低层级制是将移的位数与数值类型的位数(这里是int32bit位) 求余,得到的余数就是将移动的位数。long类型的同理。这时java中比较聪明的一个机制,这样做可以减少一些不必要的步骤,超过了位数再去做移位运算是没有必要的,所以求余数。
@三元运算符:格式为 布尔表达式 ?值1:值2
布尔表达式如果是true,结果就是值1,否则为值2。简单示例代码:
- class ThrBinOperator
- {
- public static void main(String[] args)
- {
- int a=10;
- int b=12;
- System.out.println("我学习:"+((a>b)?"C++":"Java"));
- }
- }
- /*
- 运行结果:
- 我学习:Java
- */
@逗号运算符:就是"," ,逗号也是一种运算符,比较简单。有一点要注意的是,在定义数组时最后的逗号可有可无,如 int [] n={1,2,3,4,};//最后的逗号带着也不错,去掉也不错。
@字符串运算符:在这里不多论述,在后面的学习再阐述。
@转型运算符:转型运算符就是"( )"和数值类型的结合用法,将一种类型的对象或数据,经过强制转换而转变为另一种类型的数据。把需要转换成的数据类型放在"( )"里面。示例代码:
- class ConvOperation
- {
- public static void main(String[] args)
- {
- int a=10;
- double d=12.56;
- //强转开始
- System.out.println("原来a+d="+(a+d));
- int x=(int)d+a;
- System.out.println("强转之后a+d="+x);
- }
- }
- /*
- 原来a+d=22.560000000000002
- 强转之后a+d=22
- */
每种编程语言也有相应的关键字,直接介绍Java中的关键字吧。Java中的关键字是被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 |