Java基础(一)——关键字、变量、运算符

1,  dos命令行,课程中常见的命令:

dir:列出当前目录下的文件以及文件夹

md:创建目录

rd:删除目录

cd:进入指定目录

cd..:返回上一级目录

cd/:退回到根目录

del:删除文件

exit:退出dos命令行


2,Java语言的特点:跨平台性

什么是跨平台性?答:通过Java语言编写的应用程序在不同系统平台上都可以运行。

原理是什么?答:只要在运行Java应用程序的系统平台上,先安装与平台对于的Java虚拟机(Java Virtual Machine,JVM)即可,由JVM负责Java程序在该系统上运行。

原理图:

3,  Java环境搭建:

什么是JDK(Java Development Kit)

开发工具,Javac及基础核心类

运行环境, java及基础核心类

 

下载、安装JDK(简单,不再赘述);

环境变量的配置:右击“我的电脑”——“属性”——“高级”——“环境变量”——“系统变量”——右击Path——变量值:添加D:\JDK1.6\bin;——确定

注意:最好添加用户变量,因为这样会安全一点, “用户变量”——“新建”——变量名最好取个有意义的,如JAVA_HOME——变量值是JDK安装的目录,例如我的是D:\JDK1.6——确定——“系统变量”——右击Path——变量值:添加%JAVAHOME%\bin;——确定

 

临时环境配置:dos命令是set path=临时环境目录

Classpath设置:dos命令是set classpath=类文件所在目录

 

4,JVM运行过程

 5,java注释:

单行注释://注释的内容

多行注释:/*注释的内容*/

文档注释:/**  作者:xxx    版本:xxx.xx  功能说明*/

 

6,  Java标识符:

java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。

 

7,  java的关键字

 注:java 无sizeof ,goto, const 关键字,但不能用goto const作为变量名


8,  java中常量

整型常量:十进制(12) ,十六进制 (0x12),八进制(012)

长整型常量:13L

单精度浮点数:5.1f,.4f ,2e3f ,0f

双精度浮点数 :5.1,.4,2e-3,0d

布尔常量 :true和false

字符常量 :‘a’ , ‘8’,  '\u0027'

‘\r‘表示接受键盘输入,相当于按下了回车键;

‘\n‘是换行;

‘\t‘是制表符,相当于table键;

‘\b‘是退格键,相当于Back Space;

‘\‘‘是单引号,而‘\“‘是双引号;

‘\\‘是一个斜杠“\”。

字符串常量 :“Hello World“,”123”, "Welcome \nXXX"

null常量 :null常量只有一个值,用null表示,表示对象的引用为空

 

9,  Java中的变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据 。

 

10,变量字节大小及有效取值范围

1.byte占用一个字节,数字大小为-27—27-1

2.short占用两个字节,数字大小为-215—215-1

3.int占用四个字节,数字大小为-231—231-1

4.long占用八个字节,数字大小为-263—263-1

5.float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:101*22  , 101*2-3

6.double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。

7.char占两个字节,数字大小为0—216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。

8.Boolean占一个字节,其取值只有两个,true和false。


11,类型转换

自动类型转换(也叫隐式类型转换) 

强制类型转换(也叫显式类型转换)

类型转换的原理及什么时候要用强制类型转换

表达式的数据类型自动提升

所有的byte型、short型和char的值将被提升到int型。

如果一个操作数是long型,计算结果就是long型;

如果一个操作数是float型,计算结果就是float型;

如果一个操作数是double型,计算结果就是double型。

注意实例小程序

class  TestByte
{
	public static void main(String[] args) 
	{
		 byte b=3;
		 //b=b+2;           //编译错误,java中整形数字默认为int类型,2为int不是byte
		 b=(byte)(b+2);
		 System.out.println(b);
	}
}

总结

发生场景

     1.赋值

         1.1如果等号右边的式子只有常量,则在不超过左边数据范围的情况下,类型不同,会发生自动类型转换

         1.2如果等号右边的式子类型比左边式子的类型低,发生自动类型转换

         1.3如果等号右边的式子类型比左边式子的类型高,必须使用强制类型转换

         1.4实型转整型时,必须使用强制类型转换,转换结果只取实型的整数部分      

      2.二元运算

         2.1两个操作数类型不同时,低类型转高类型,然后再进行运算

         2.2运算中如果有变量参与运算,运算的结果如果类型不足int,将自动升级为int


12,运算符

1,  算术运算符:+,-,*,/,%,++,--

2,  赋值运算符:=,+=,-=,*=,/=,%=

3,  比较运算符:==,!=,<,>, <=, >=, instanceof

Instanceof检查是否是类的对象

4,  逻辑运算符:&,|,^,!,&&,||

5,  位运算符:<<  左移  >>  右移  >>> 无符号右移

注意1:b=a++;           //首先a赋值于b,然后a=a+1

               b=++a            //首先执行a++,然后将结果赋值于b

注意2,:&&和&的区别

public class TestAnd
{
   public static void main(String[] args)
   {
       int x=0;
       int y=3;
       if(x!=0 && y==y/x)
       System.out.println("y = "+y);
   }
}
        上面例子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错

注意3,>>和>>>的区别:

public class ShiftTest
{
	public static void main(String [] args)
	{
		int x=0x80000000;
		int y=0x80000000;
		x=x>>1;
		y=y>>>1;
		System.out.println(“0x80000000>>1 = ” + Integer.toHexString(x));
		System.out.println(“0x80000000>>>1 = ” + Integer.toHexString(y));
	}
}

运行结果如下:

0x80000000>>1 = c0000000

0x80000000>>>1 = 40000000

 

十六进制与二进的对比

       0x80000000 =1000,0000, 0000, 0000, 0000, 0000, 0000, 0000

       0xc0000000=1100,0000, 0000, 0000, 0000, 0000, 0000, 0000

       0x40000000 =0100,0000, 0000, 0000, 0000, 0000, 0000, 0000

总结:移位运算的注意事项

1,  移位运算符适用类型有byte、short、char、int、long

2,  对低于int型的操作数将先自动转换为int型再移位。     

3,  对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数。例如:a>>33和a>>1结果是一样的,a>>32的结果还是a原来的数字。

4,  对于long型整数移位时a>>b ,则是先将移位位数b对64取模。

5,  移位不会改变变量本身的值。如a>>1;在一行语句中单独存在,毫无意义 。

6,  x>>1的结果和x/2的结果是一样的,x<<2和x*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,

       就是等于这个数除以2的n次方。请思考:如何用程序实现求2的x次方。答案:y = 1<< x;

注意4,模运算

例程与解释:

class OperatorDemo 
{
	public static void main(String[] args) 
	{
		//模运算 %
		//Java中模运算是用一个操作数-另一个操作数,直到前面的操作数值小于后一个操作数值为止,
                //10-2.1 ——》7.9-2.1——》5.8-2.1——》3.7-2.1——》1.6,结果为1.6
		System.out.println(10%2.1);   
		//Java中,模运算的符号位取决于前一个操作数,不管后一个操作数的符号
		//结构为:前一个操作数的符号 前一个操作数的绝对值%后一个操作数的绝对值
		System.out.println(10%-3);   //1
		System.out.println(-10%-3);  //-1
	}
}

13,运算符的优先级

14,转义字符

\b为退格键,退格作用,但是不删除字符

\t为制表符每段字符串划分为8位 超过8位或者8位,要重新计算

例程:

class ClDemo 
{
	public static void main(String[] args) 
	{
		//  \b为退格键,退格作用,但是不删除字符
		System.out.println("abcdefg\b");
		System.out.println("abcdefg\b1");
		System.out.println("abcd\b\befg\b12\b\b\b345");
		System.out.println("============================");
		// \t为制表符 每段字符串划分为8位  超过8位或者8位,要重新计算
		System.out.println("李超\t男\t23");
		System.out.println("张三丰\t男\t99");
		System.out.println("赵敏\t女\t16");
		System.out.println("藤原拓海\t男\t18");
	}
}

编译运行结果为:


 基础学习心得总结:

        以上这些知识不难,但都是凡学习编程语言必须要掌握的知识,这篇日志记录的几乎是所有编程语言的共性,因为以前用过其它编程语言,

所以这些内容掌握起来还是比较快的,但是值得注意的地方是数据类型的转换和运算符的优先级,都是一些细节方面的东西,即使是有过好多年开发经验的人

也会弄错,特此我列出了一些要掌握的点,以期后续学习!


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值