zoukankan      html  css  js  c++  java
  • Java入门【02】基本程序设计结构01

    一个简单的Java应用程序

    1 public class FirstSample {
    2     public static void main(String[] args) {
    3         System.out.println("We will not use 'Hello World'!");
    4     }
    5 }

    public : 访问修饰符 (access modifier)用于控制程序其他部分对这段代码的访问级别。

    class :表明Java程序中的全部内容都包含在类中,这里类作为一个加载程序逻辑的容器,程序逻辑定义了应用程序的行为。

    FirstSample : 在class后紧跟的是类名。类名必须以字母开头,后面可以跟字母、数字、下划线的任意组合(可以用中文,不建议使用),长度基本上没有限制。但不能使用Java保留字。

    类名命名规范:类名以大写字母开头,如果名字由多个单词组成,每个单词第一个字母都应该大写(骆驼命名法)

    源代码文件名必须与公共类的名字相同,并用.java作为扩展名。

    在命令行中运行:

        javac FirstSample.java

        java FirstSample

    控制台中将显示:

    We will not use ‘Hello World’!

    运行已编译的程序时,Java虚拟机将从指定类中的main方法开始执行,因此类的源文件必须包含一个main方法。

    像C/C++中一样,用大括号划分程序各个部分(块)。


    注释

    // 单行注释

    /* 多行注释 */


    数据类型

    Java是强类型语言,这就意味着必须为每一个变量声明一种类型。

    在Java种一共有8个基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。

    整型

    整型用于表示没有小数部分的数值,允许是负数。

    int              4字节                    -2 147 483 648 ~ 2 147 483 647
    short            2字节                    -32 768 ~ 32 767
    long             8字节                    -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
    byte             1字节                    -128 ~ 127

    在Java中,整型范围与运行Java代码的机器无关。

    长整型有一个后缀L或l , 十六进制有个前缀0x或0X,八进制有个前缀0。

    从Java7开始,加上前缀0b或0B就可以写二进制数。另外,从Java7开始还可以为数字字面量加下划线,如用 1_000_000表示一百万。下划线只是为了易读性,Java编译器会去除这些下划线。

    Java中没有无符号形式的int long short 或 byte类型

    浮点类型

    浮点类型用于表示有小数部分的数值。Java中有两种浮点类型 float 和 double。

    float            4字节                   大约±3.402 823 47E+38F(有效位数6~7位)
    double           8字节                   大约±1.797 693 134 862 315 70E+308(有效位数15位)

    float类型的数值有个后缀F或f,没有后缀f默认为double类型。

    表示溢出的出错的情况的三个特殊的浮点数值:

    · 正无穷大              Double.POSITIVE_INFINITY
    
    · 负无穷大              Double.NEGATIVE_INFINITY
    
    · NaN(不是一个数字)    Double.NaN

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

    不能检测一个特定值是否等于Double.NaN,但是可以使用Double.isNaN方法。

    浮点数不适用于无法接受舍入误差 的金融计算当中。如果在数值计算中不允许有任何舍入误差,应该使用BigDecimal类。

    char类型

    既可以表示单个字符也可以表示一些Unicode字符。

    char类型字面量值要用单引号括起来。例如 ‘A’ 。

    char类型的值可以表示为十六进制的值,范围从 u0000 到 uffff 。

    除了转义序列u外还有一些表示特殊字符的转义序列。

    转义序列还可以出现在加括号的字符常量或字符串之外。例如:public static void main(String u005B u005D args)完全符合语法规则。

    要注意注释中的u

    // u000a is a new line

    boolean类型

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

    在C/C++中可以用数值表示true 或 false ,但是在Java中不行。


    变量

    变量名:以字母为开头的字母数字下划线的任意组合。大小写敏感没有长度限制。不能使用Java保留字作为变量名。可以在一行中声明多个变量。

    变量初始化

    声明一个变量后必须用赋值语句对变量进行显式初始化。

    错误示例:

    int vacationDays;
    System.out.println(vacationDays);//ERROR--variable not initialized

    合法示例:

    int vacationDays;
    vacationDays = 12;
    System.out.println(vacationDays);

    也可以在声明的时候赋值:

    1 int vacationDays=12;
    2 System.out.println(vacationDays);

    常量

    在Java中,利用关键字final指示常量。

    例如:

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

    final 表示这个变量只能被赋值一次,一旦被赋值,就不能更改了,习惯上常量名要全大写。

    在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常这些常量称为类常量。用static final关键字设置一个类常量。类常量定义于main方法的外部。

    运算符

    加 +

    减 –

    乘 *

    除 /

    当参与/运算的两个操作数都是整数时,表示整数除法,否则表示浮点除法。

    整数的取余操作数用%表示。

    整数被0除会产生一个异常 ,而浮点数被0除会得到无穷大或NaN。

    注释:有些处理器使用80位浮点寄存器,增加了中间过程的计算精度
    例如 : double w = x*y/z
    很多Intel处理器计算x*y将 结果存储在80位的寄存器中,
    再除以z,并将结果截断为64位,这样可以得到更加精确的结果,
    还能避免产生指数溢出,但是与始终在64位的机器上计算结果不一样,
    因此,Java虚拟机对使用strictfp关键字标记的类、方法
    使用严格的浮点计算来生成可再生的结果。

    数学函数与常量

    Math类,包含了各种 数学函数。

    平方根:double sqrt(double x)

    幂运算: double pow(double x, double y)

    解决取余的被除数是负数,导致结果是-1:floorMod(int x , int y)

    三角函数:sin 、cos、tan、atan、atan2

    指数函数以及它的反函数–自然对数以及以10为底的对数:exp、log、log10

    π和e 的近似值:PI、E

    数值类型转换

    •如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。

    •否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。

    •否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。

    •否则, 两个操作数都将被转换为 int 类型。

    强制类型转换

    强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如

    1 double x   = 9.997;
    2 int nx = (int) x;

    如果想对浮点数进行舍人运算, 以便得到最接近的整数, 那就需要使用 Math_ round 方法:

    1 double x z 9.997;
    2 int nx = (int) Math.round(x)

    当调用 round 的时候, 仍然需要使用强制类型转换( int) 其原因 是 round 方法返回的结果为 long 类型,由于存在信息丢失的可能性,所以只有使用显式的强 制类型转换才能够将 long 类型转换成 int 类型。

    结合赋值和运算符

    可以在赋值中使用二元运算符,这是一种很方便的简写形式。

    例如, X += 4;
    等价于:x = x + 4;

    自增与自减运算符

    n++ 与 ++n n– 与 –n

    这四个都是增1 或 减一,具体区别在于与赋值运算符结合的时候n++或n–是先把自增之前的值赋给某个变量然后再自增1,而++n和n++是先自增1,然后再给变量赋值。

    关系和 boolean 运算符

    == 相等

    != 不等

    > 大于

    < 小于

    >= 大于等于

    <=小于等于

    && 逻辑与

    || 逻辑或

    三元操作符: condition?expression1 : expression2 (可以嵌套)

    位运算符

    & 按位与 |按位或 ^按位异或 ~按位非

    << 左移 >>右移 >>>高位填0

    括号与运算符级别

    枚举类型

    枚举类型包括有限个命名的值。

    例如,enum Size { SMALL, MEDIUM, LARGE, EXTRA.LARCE };

    现在,可以声明这种类型的变量: Size s = Size.MEDIUM;

    Size 类型的变量只能存储这个类型声明中给定的某个枚举值,或者 null 值,null 表示这 个变量没有设置任何值。

  • 相关阅读:
    el-table背景色透明
    判断数组对象里的属性值是否重复
    :Duplicate keys detected: 'xxx'. This may cause an update error.
    钉钉微应用附件下载方案
    探索JS引擎工作原理
    js深度优先遍历和广度优先遍历实现
    微前端qiankun从搭建到部署的实践
    浏览器与Node的事件循环(Event Loop)有何区别?
    JS
    微信小程序预览Word文档
  • 原文地址:https://www.cnblogs.com/smk110/p/12907444.html
Copyright © 2011-2022 走看看