第三章 Java的基本程序设计结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37726222/article/details/84560034
system.out.printlin("Hello");

此句是调用了system.out对象的println()方法。

3.3数据类型

0b:二进制          0x or 0X:16进制

double多数情况下不能满足需求,float类型的数值需要添加后缀F或者是f。

注释:二进制系统不能正确表示1/10,正如十进制系统不能表示1/3.

char类型的数值表示为16进制的范围:\u0000~\Uffff。是\u后面跟着一个四位的六进制数。

关于Unicode和char类型:

什么是码点?是指一个编码表中某个字符对应的代码值。Unicode标准中,码点用16进制书写,加上前缀U+。Utf16采用不同的长度表示所有的码点。强烈建议不要在程序中使用char类型。

3.4变量

逐行声明变量可以提高程序的可读性。并且,变量的声明尽可能的靠近程序第一次使用的地方。

final声明常量,并且常量名全大写。

3.5运算符

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

  1. public static strictfp void main(String[]args):如果一个类标记为strictfp那么类中所有浮点计算都要使用严格浮点计算(也就是说,中间运算的长浮点结果需要截断)而java语言默认的是不截断。
  2. floorMod方法取摸,结果总是非负的。解决了x%2,当x为负数,结果总是-1的情况。
  3. ++j和j++的问题,前缀形式会先完成加1;而后缀形式会使用变量原来的值。
  4. &&和||两个操作符,可以利用他们来避免错误。因为如&&,表达式1如果为false,那么表达式2就不用计算了。
  5. x<y?x:y 该表达式非常简洁地返回了两者中的较小者。
  6. 位运算符?
  7. 优先级问题:+=运算符是从右向左.&&运算符的优先级高于||.
  8. 枚举类型:

3.6字符串

  1. 1.join方法(“定界符”,“a”,"b","c")可以连接多个字符串并且用定界符分割。
  2. 2.使用equals()【还有equalsIgnoreCase】方法检查相等而不要使用“==”!
  3. 由较短的字符串构建字符串。字符串连接的话效率较低,于是使用StringBuilder.append()。

3.7输入输出

  1. Scnner对象不适合从控制台读取密码。需要使用Console cons=System.console();对象。为了安全,密码采用字符数组存储char[]
  2. printf(%8.2f,x)格式化输出的方法。、
  3. java.time包进行时间打印。
  4. 旧版的java使用new Date()对象输出时间。灵活拼接时间的代码:
  5. 文件输入操作。Scanner in=new Scanner(Paths.get("mytxt.txt"),"UTF-8");
  6. 文件输出PrintWriter out=new PrintWriter("myfile.txt","UTF-8")若不存在,则创建新文件。
    printf("%1$s %2$tB %2$te,%2$tY","Due date:",new Date())
    printf("%s %tB %<te,%<tY","Due date:",new Date())
    
  7. 文件路径问题,找到当前路径的方式:如下
String dir=System.getProperty("user.dir")

    8. main方法的throws子句标记可能会出现的异常。

3.8控制流程

使用带有标签的语句块,可以使用break跳到块的末尾。

lable:
{
if(condition){
break lable;
}
}

break和continue完全是可选的,不使用也可表达相同的含义。故本书没有使用、。

3.9大数值

BIgInteger和BigDecimal实现了任意精度的浮点数运算。


BigInteger d=c.multiply(b.add(BigInteger.valueOf(200)))

3.10数组

数组的默认初始化:数值数组0,布尔数组false,对象数组为0.

匿名数组在不创建新变量的情况下重新初始化一个数组:

smallPrimes=new int[]{1,2,3,4}

数组拷贝:

int[] copiedLuckynumbers=Arrays.copyOf(luckynumbers,2*luckynumbers.length);

二维数组的快速打印方法:

int [][]a={{1,2},{3,4}};
System.out.println(Arrays.deepTOString(a));

不规则数组的打印方法:(先分配固定行数的二维数组,然后分配每一行。)

int[][]odds=new int[NMAX][];
for(int n=0;n<=NMAX;n++){
odds[n]=new int[n*n];
}

//访问方法
for(int[] row:odds)
{
    for(int odd:row)
        System.ot.println("%4d",odd);
    System.out.println();
}

猜你喜欢

转载自blog.csdn.net/weixin_37726222/article/details/84560034