001.1    一个简单的Java程序

1 public class hello {
2     public static void main(String[] args)
3     {
4         System.out.println("Hello");
5     }
6 }

Java是大小写敏感的,所以如果出现大小写编写错误,是不可以成功运行的(例如:main写成Main)。

 

关键字public被称为访问修饰符,这一类的修饰符用于控制程序的其他部分对这段代码的访问级别。关键字class表明了Java程序的全部内容都包含在类里。这里只需要将类作为一个加载程序逻辑的容器就可以程序的逻辑定义了应用程序的行为。

 

class后面跟着的是类名,类名需要和文件的名字保持一致,以字母开头,后面可以跟着字母和数字的组合,长度没有限制,不可以使用Java的保留字。

 

主函数里System.out.println();调用的是System.out对象的println方法,在Java中使用的通用语法是

object,method(parameters)

 

在命令行运行这个程序,首先进入这个文件所在的文件夹,然后首先通过javac把这个文件hello.java编译成hello.class。Java程序启动Java虚拟机,虚拟机执行编译器放在class文件中的字节码。运行这个程序,java虚拟机会从指定的类中的main方法开始执行,因此为了程序能够执行,在类的源文件中必须包含一个main方法,本程序会在终端输出Hello,代表执行完毕。

1 javac hello.java
2 java hello

 

001.2    注释

1.单行注释 // :

  从 // 开始注释到本行的结尾 。

2.多行注释 /* */:

  对/* */里面的内容进行注释,也可以使用CTRL+/ 进行批量注释,/* */不能进行嵌套,所以我倾向于批量注释的方法。

3.用于生成文档的注释 /** */

 

001.3    数据类型

Java是一种强类型的语言,所以这意味着它必须为每一个变量声明一种类型。在Java中,有八种基本的数据类型,其中包括了四种整型,两种浮点类型,一种用于表示unicode编码的字符单元的字符类型char和一种用于表示真值的Boolean类型。

 

001.3.1    整型

Java整型
类型 存储需求 取值范围
int 4字节 ...
short 2字节 ...
long 8字节 ...
byte 1字节 ...

整型用于表示没有小数部分的数值,它允许负数,通常情况下,int最为常用,如果数量过于巨大,选用long来操作,short和byte用于特定的场合。

 

001.3.2  浮点型

Java浮点类型
类型 存储需求 取值范围
float 4字节 ...
double 8字节 ...

大部分时候我们选用的是double这种方法,因为double的精度是float的两倍,很多情况下,float的精度不能满足需求。

有三个特殊的浮点数值:

  1. 正无穷大
  2. 负无穷大
  3. NaN(这不是一个数字)

例如:一个正整数除以0的结果就是正无穷大。计算0/0或者负数的平方根的结果就是NaN。

ps:常量 Double.POSITIVE_INFINITY、 Double.NEGATIVEJNFINITY 和 Double.NaN ( 以及相应的 Float 类型的常量) 分别表示这三个特殊的值。

如果我们想要检测一个特定值是否等于Double.NaN,不能使用if(x==Double.NaN),因为Java认为所有非数值的值都是不相同的,我们可以使用if(double.isNaN)来判断这是否是一个数字。

 

001.3.3  char类型

特殊字符的转义序列
转义序列 名称 Unicode值
\b 退格 \u0008
\t 制表 \u0009
\n 换行 \u000a
\r 回车 \u000d
\" 双引号 \u0022
\' 单引号 \u0027
\\ 反斜杠 \u005c

 

 001.3.4  boolean类型

这个类型有两个值:false和true,用来判定逻辑条件,整型和布尔值之间不能进行相互转换。

 

001.4  变量

在Java中,每个变量都有一个类型(type),声明变量的时候,

  • double salary;
  • int vacationDays;
  • long earthPopulation;
  • boolean done;

声明是一条完整的java语句,所以需要用分号结束。

 

001.4.1  变量初始化

声明一个变量之后,需要对他进行显式地初始化,在Java中不可以使用未初始化的变量,Java编辑器认为这个是错误的。

变量名放在左侧,相应取值的Java表达式放在等号的右侧:

1 int a ;
2 a = 12;

 

也可以把变量的声明和初始化放在同一行里:

int a = 12;

 

 

001.4.2  常量

在Java中,利用关键字final来指示常量,关键字final表示这个变量只能够被赋值一次,一旦被赋值之后,就不能再更改了,习惯上我们把常量名全部大写。

 

在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这样的常量称为类常量。可以使用static final设置一个类常量,下面是使用类常量的实例:

 1 public class Constants2
 2 {
 3     public static final double CM_PER_INCH = 2.54;
 4 
 5     public static void main(String[] args)
 6     {
 7         double paperWidth = 8.5;
 8         double paperHeight = 11;
 9         System.out.println("Paper size in centimeters: "
10             + paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ;
11     }
12 }
13     

需要注意的是,类常量的定义微遇main方法的外部,因此在同一个类的其他方法中也可以使用这个常量,而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量,在这个示例中,Constants2.CM_PER_INCH就是这样的一个常量。

 

001.5  运算符

 在Java中,使用算数运算符+,-,*,/表示加,减,乘,除运算。当参与/运算的两个操作数都是整数的时候,表示整数除法,否则,表示浮点除法。整数的求余操作用%表示。

1 15/2            //7
2 15%2            //1
3 15.0/2            //7.5

 整数除以0会产生一个异常,而浮点数除以0会得到一个无穷大或者NaN的结果。

 

001.5.1  数学函数与常量

A、计算一个数值的平方根,可以使用sqrt方法;

1 double x=4;
2 double y=Math.sqrt(x);
3 System.out.println(y);            //2.0

println方法处理的是System.out对象,但是Math类的sqrt方法处理的不是对象,这样的方法被称为静态方法。

B、幂运算,借用Math类的pow方法

1 double y = Math.pow(x,a);

将y设置成x的a次幂,pow方法使用的是两个double类型的参数,其返回结果也是double类型的。

 C、另外一些常用的三角函数,指数函数

 1 Math.sin
 2 Math.cos
 3 Math.tan
 4 Math.atan
 5 Math.atan2
 6 Math.exp
 7 Math.log
 8 Math.log10
 9 Math.PI
10 Math.E

PS:可以不必在数学方法名和常量名前面添加前缀“Math”,只要在源文件的头部导入:

1 import static java.1ang.Math.*;

 

 001.5.2  数值类型间的转换

 两个数值进行二元操作的时候,有double就变double,没有就看有没有float,再没有就看有没有long,都没有就变成int。

 

001.5.3  强制类型转换

1 //这种方式是直接抹去小数部分
2 double x=9.997;
3 int nx = (int) x;                //9

如果想对浮点数进行舍入运算,需要使用Math.round方法

1 //产生一个最接近的整数
2 double x z 9.997;
3 int nx = (int) Math.round(x);

 

001.5.4  结合赋值和运算符

1 //两者是等价的
2 x += 4;
3 x = x+4;

 

 001.5.5  自增与自减运算符

1 int a=4;
2 ++a;            //a=5
3 a++;            //a=5
4 --a;            //a=3
5 a--;            //a=3

前加加和后加加在效果上是类似的,就是前加加先进行自增再进行运算,后加加运算结束再自增。

 1 package test;
 2 
 3 public class Test {
 4     public static void main(String[] args){
 5         int a=1;
 6         int b=1;
 7         System.out.println(2*++a);    //4
 8         System.out.println(2*b++);    //2
 9         System.out.println(a);            //2   
10         System.out.println(b);            //2
11     }
12 }
13        

这里的前++

1 2*++a;
2 //相当于
3 a=a+1;    
4 2*a; 

这里的后++

1 2*b++;
2 //相当于
3 2*b;
4 b=b+1;

 

 001.5.6  关系和 boolean 运算符

 ==,!=,<,>,<=,>=,&&(与),||(或)

ps:三元运算符condition ? expressioni1: expression2

  例如:x<y?x:y会挑选出x和y中比较小的那一个。

 

001.5.7  枚举类型

 

posted on 2019-08-08 11:26  橙子不秃头  阅读(366)  评论(0编辑  收藏  举报