Java入门(一):基本概念,变量常量,运算符

Java入门(一)基本概念,变量常量,运算符

2017/9/26

 

 by

CHENJING DING

 


CHAPTER1 – java入门基础知识


Jdk JVM JRE

Jdk和JVM,JRE之间的关系是,安装了JDK,就包含了JRE和JVM。具体含义见下图。

编译器,解释器

源文件的后缀名是.java。经过编译器后(javac命令)生成字节码文件,后缀名为.class。字节码文件经过解释器(java命令)才能运行。

三 使用Eclipse开发JAVA程序

步骤

  • 创建JAVA程序 :File – New Java Project-命名-Finish
  • 创建程序包(将很多代码放到一个文件夹下):在SRC下,右击,选择Add-Package-命名-Finish
  • 编写java源程序:在程序包下,右击,New-Class-命名-Finish
  • 运行java程序:右键-RunAs-Java Application

Eclipse自动完成了编译器将java文件编译成class文件的过程。


 


以下内容总结自慕课网视频:http://www.imooc.com/code/1177,红色标题部分以及红色标出部分为自己总结和补充内容


CHAPTER2 – 变量和常量


一 Java关键字


Java是区分大小写的,void是关键字,Void不是关键字

二 Java标识符

标识符就是用于给Java程序中变量,类,方法等命名的符号。

使用标识符,需要遵守如下规则:

1.标识符由字母,数字,下划线(_),美元符($)组成,但不能包含@、%、空格等其它特殊字符。不能以数字开头。

2.标识符不能是Java关键字和保留字。但可以包含关键字和保留字。比如不可以使用void,但可以使用Myvoid

3.标识符是区分大小写的

三 变量

通过三个元素描述变量:变量类型,变量名以及变量值

变量名

  1. 骆驼式命名法:第一个单词首字母小写,其后单词首字母大写,其余全部小写:myAge
  2. Java变量名的长度没有限制,但区分大小写

数据类型

Java中存储的数据类型必须在编译时就确定数据类型。Java中数据类型如下:

基本数据类型变量存的是数据本身,而引用数据类型存的是保存的数据的空间地址。其中,String 是一种常见的引用数据类型,用来表示字符串。

常用的基本数据类型

Float和Double比较

                                  

Java中默认浮点数是double类型,其存储结构如下图:从左到右是从低位到高位,而在计算机内部是采用逆序存储的    

   

精度

精度是由尾数决定的。float的尾数:23位,其范围为:0~2^-23,而2^23=1.1920929E-7 ,所以float的小数精度为7位。有效数字(从第一位不为0的数)为8位。例如:8317637.5,转换成科学记数法 8.3176375E6 有效数字是8位。同理,double的尾数:52位,2^52=2.220446049250313E-16,精度最小是16位。

浮点数使用注意

程序中要尽量避免浮点数比较。比如:System.out.println(2.00-1.10);
输出的结果是:0.8999999999999999。因为1.10在计算机中不是精确存储的。

Java变量使用规则

  1. Java变量需要先声明后使用
  2. 可以声明变量的同时进行初始化,也可以先声明后赋值

四 Java中的类型转换

Java中的自动类型转换

满足2个条件才能进行自动类型转换:

1.      目标类型能与源类型兼容。Double兼容int,char可以转换成int,int不能自动转换成char

2.      目标类型长度大于源类型。比如double为8字节。Int为4字节,则int可以自动转换成double类型

例int sum = 105;double svm = sum/4;结果是svm= 26.0。

Java中的强制类型转换

语法:(数据类型)数值

强制类型转换可能会造成数据的丢失,比如直接截断小数部分而不是四舍五入。

 


Int 类型转成char三种方式:

1. 将整型强制类型转换为字符型,JVM会把数字当成字符的 ASCII编码来处理。例如字符 '(' ASCII编码为 40,所以将整型 40强制类型转换为字符型,会得到字符 '('

int a = 40;

char c =(char) a;

输出:(

2. 先转成字符串,再转成 char;

int a = 4;

String str= String.valueOf(a);

char[]array = str.toCharArray();

for (int i= 0; i < array.length; i++) {

    System.out.print(array[i]);

}

3.     加上 48,因为 ASCII编码 48 57 为字符 '0' ~ '9'的编码。


          

 

五 java常量的应用

语法:final常量名 = 值。当常量的值被设定后,在程序运行过程中不允许改变。

常量名一般使用大写字符

六 在java中使用注释

Java中注释一般有三种类型,单行注释,多行注释,文档注释

 


CHAPTER3 – 运算符


以下内容和C++一致,当然不代表java和C++中运算符都一样,比如java中没有逗号运算符等。

 

一 算数运算符

二 赋值运算符

 

三 比较运算符


比较的结果是布尔值。注意:

1.      >,  <,  >=,  <=只支持左右两边操作数是数值类型。Char类型在比较时可以自动转换成int类型比较,而boolean不行

2.       ==, !=两边的操作数可以是数值类型,也可以是引用类型。

四逻辑运算符

短路现象

(one > two ) && ( one < three ) 中,如果能确定左边one > two 运行结果为false , 则系统就认为已经没有必要执行右侧的 one < three 啦

五条件运算符

?:也称三元运算符

语法形式:布尔表达式?表达式1:表达式2

运算过程:如果布尔表达式的值为true,则返回表达式1的值。否则返回表达式2的值。

六 java中的运算符优先级

级别1的优先级最高,级别11的优先级最低

记忆口诀:去掉一个最高的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。

记住一个最高的:括号。   

剩余的是一、二、三、赋值。意思是单目、双目、三目和赋值运算符。    
在诸多双目运算符中,又分为:算术、关系、逻辑。 移位运算符在算术运算符后边,逻辑位运算符(按位与,按位异或,按位或)在逻辑运算符的前面