01_Java的基本程序结构设计1

3.1一个简单的Java应用程序

public class FirstSimple
{
    public static void main(String[] args);
    {
        System.out.println("hello world!")
    }
}

  1.Java区分大小写

  2.关键字public称为访问修饰符(access modifier)

  3.关键字class表明Java程序中的全部内容都包含在类中。java应用程序中的全部内容必须放置在类中。其后面跟着类名。类名建议按照驼峰法来写。

  4.源代码的文件名必须和公共类的名字相同,并用.java结尾。

  5.System.out.println()表示使用了System.out对象,并调用了他的方法println。java的通用语法是obj.method(para)

  6.以/**开头,以*/结尾的注释可以自动地生成文档。具体方法见第4章

 

3.2数据类型

public class Main
{
     public static void main(String[] args)  
    {
    double x1 = 0x1.0p-3;
    System.out.print(x);  //0.125 without /n
    System.out.println(2.0-1.1);  // 0.1250.89999999
    int 我=1; // ‘我’可以作为变量,我是Unicode字符,属于java中的“字母”
    if (Character.isJavaIdentifierPart(我)) System.out.println(我);  // 1
    char l = '我';
    if (Character.isJavaIdentifierStart(l)) System.out.println(l);  //
    }

}

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

  2.长整型后面有l或者L,十六进制0X或者0x,八进制前面是个0,二进制表示0b或者0B

  3.java中没有任何无符号形式的int,long,short或byte类型。

  4.java中默认的小数形式是double,如果是float需要在后缀加上F或者f,注因为是二进制表示法, 无法精确表达小数点后以5结尾以外的数字。如上例

  5.可以使用十六进制表示浮点数值。0.125==0x1.0p-3  ,其中p表示以2为底的指数

  6.Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY Double.NaN分别表示这三个特殊的值。其中NaN不是一个数值,所以不能使用==检测Double.NaN,但可以使用Double.isNaN(x)方法。

  7.java中‘A’是编码值为65的字符常量(char),而"A"是一个字符串(String)。

  8.java中 boolean类型有两个值false和true,整数值和布尔值之间不能相互转换。

  9.与python不同,java声明变量后必须显式初始化,另外与C++不能,java不区别定义和声明。

  10.如果想知道那些Unicode字符属于java中的“字母”,可以使用character类的isjavaIdentifierStart和isjavaIdentifierpart

  11.在java中使用final指示常量。 final double PER=1.2;关键字final表示这个变量只能被赋值一次。在java中,经常希望某个变量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final设置一个类常量

    注意:类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且这个常量被声明为Public,那么其他类的方法也可以使用这个常量。

 

3.3运算符

 

    public static strictfp void main(String[] args) {
        double x = 4;
        double y = Math.sqrt(x); // public static double sqrt(double a)
        System.out.println(y);  // 2.0 public static final PrintStream out = null;
        System.out.println(-15%6);  // -3
        int a = Math.floorMod(-15,6);  // like % ,but a little different
        System.out.println("a is " + a);  // a is 3
        System.out.println("π is" + PI);  // here PI = Math.PI
        int b = 123465789;
        float c = b;
        System.out.println("b is " + b + '\n' + "c is " + c);  // b is 123456789 c is 1.234567892E8是 10的8次但是多了一个2?
        double d = b +c;
        System.out.println("d is "+ d);  // d is 2.46931584E8
        x = 9.997;
        int nx = (int) x;
        System.out.println("nx="+nx);
        nx+=3.5;
        nx++;
        System.out.println("nx ="+nx);  // 9+3.5 = 9+3=12 nx = (int)(nx +3.5),but nx = nx + 3.5 will error!

 

 

 

 

 

 

1.对于浮点数的算术运算实现可移植性是十分困难的。默认情况下,虚拟机设计者允许对中间计算结果采用扩展的精度。但是,对于使用strictfp关键字标记的方法必须使用严格的浮点计算来生成可再生的结果。
比如public static strictfp void main(String[] args)

2.在Math类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。其中Math.sqrt()方法和System.out.println()方法不同。前者属于静态方法。后者处理System.out对象。另外Math类中还有pow(x,a)求x的a次幂的方法,floorMod对整数求余的方法,效果相当于%,但对于负数的余数取绝对值了。

3.Java中使用Math.PI和Math.E表示π和e的近似值。

4.不要再boolean类型与任何数值类型之间进行强制类型转换,这样可以防止发生错误。(那么问题来了,如何对int String boolean之间转换呢?)

5.如果运算符得到一个值,其类型与左侧操作数的类型不同,就会发生强制类型转换。例如int x = 1;x+=3.5;// 1+3.5=4【这个和双目运算符不同!

6.自增和自减和cpp一样,也有前缀和后缀之分,前缀先加再使用变量;后缀先使用变量再加。Java中的关系运算和cpp中也一样,按照“短路”的方式计算的,&& ||分别表示逻辑与和逻辑或,如果第一个操作数已经能够确定表达式的值,第二个操作数就不必计算了。

   e.g. x != 0 && 1 / x>x+y // no division by 0。如果x等于0,那么第二部分就不会计算。因此,如果x为0,也就不会计算1/x

7.与Cpp不同,java的>>>会用0填充,>>用符号位填充。

8.运算符优先级

 

转载于:https://www.cnblogs.com/SsoZhNO-1/p/11569404.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值