zoukankan      html  css  js  c++  java
  • Java基本程序设计结构(基础知识1)

    《Java核心技术卷一:基础知识》

    第三章知识点汇总

    1.Java区分大小写。

    2.Java全部内容必须放置在类中。

    3.

    4.空白符会被编译器忽略。

    5.注释注意/*  */不能嵌套使用,因为在代码中可能包含一个*/  后面就会变为非注释。

    6.Java强类型语言:每个变量必须声明一种类型。

    7.

    8.整数类型负数都要比正数多表示一位的原因:

    “为什么是-(2^31)而不是-(2^31 -1)”,是因为计算机是用补码的形式来表示一个数。为了方便,以8位机举例(32位同理),原码的表示范围是-(2^7-1) ~ (2^7-1),即-127~127,而补码的范围是-(2^7) ~ (2^7-1),即-128~127,这是因为原码表示时,对于0有2种表示,分别是10000000和00000000,因为+0和-0都是0;而补码表示时,10000000表示的是-128【-128=-1 +(-127)=(10000001)原 + (11111111)原=(11111111)补 + (10000001)补 = (10000000)补】,所以补码可以比原码多表示一个比原最小值小1的数,同理,32位机也是如此,所以范围是-(2^31)~ (2^31 -1)

    有原码求补码的方法:

    符号位不变 ,将除符号位之外取反,在最后一位+1进行运算

    9.很少情况下使用单精度float 多数是双精度double 如果只说是3.14 则默认是double类型的。

    10.由于二进制计算 计算机计算2.0-1.1会返回0.8999999 精确计算需要用到BigDecimal大数类。

    11.注意u 小心在你不知道的情况下转义

    12.从JDK10 开始 可以使用var 无需指定变量类型。

    13.final常量 static final类常量

    14.实线为数据类型转换时不会因起精度丢失

    虚线会引起精度丢失

     15.使用强制类型转换会将9.99(double)转化为9(int)

    想要四舍五入要用Math.round()方法。

    16.如果超出所转类型范围 会得到不同的数。

    17.&& ||是短路运算符 ||来说前面的对了就为真了 &&来说前面错了就为错了

    18.位运算符(永远的痛):&  | ^ ~   << >>

    19.字符串拼接:+号 Java任何对象都能转换成字符串。

    20.JDK11提供repeat方法  s.repeat(3) 将s重复三次

    21.一定一定一定不要用==来判等字符串!!!

    22.需要经常拼接字符串需要用StringBuilder,用String和+的话,每次都要新建对象,浪费时间和空间。

    23.JDK5引入StringBuilder ,前身是StringBuffer

    24.Scanner对象可以输入

    Scanner in=new Scanner(System.in);
    String s=in.nextLine();

    25. 想要格式化输出可以用printf

    %s 字符串

    %f 浮点格式(也就是我们概念中的float或者double)

    %b 相对应的参数中包含转义字符时,可以使用此替换符进行替换,对应的转义字符会被转义。

    %c ASCII字符。显示相对应参数的第一个字符

    %d, %i 十进制整数

    %o 不带正负号的八进制值

    %u 不带正负号的十进制值

    %x 不带正负号的十六进制值,使用a至f表示10至15

    %X 不带正负号的十六进制值,使用A至F表示10至15

    %% 表示"%"本身

     26.任意精度的整型计算BigInteger 用valueOf()方法可以将int转化为BigInteger

    任意精度的浮点数计算BigDemical

    不能使用运算符 只能用add、subtract、multiply、divide方法进行加减乘除

    27.声明一个数组的方法:

    int[] a=new int[100];//这整个数组全部默认为0

    int[] a=new int[3]{1,2,3};

    int[] a={1,2,3};

    int[] a=new int[3]; Arrays.fill(a,0);//将数组全部赋值0

    int[] b=Arrays.copeOf(a,2*a.length);//拷贝数组,也常用户数组扩容

    28.foreach不能处理多维数组

    如果foreach应用到二维数组上需要嵌套使用

    for(int[] line:arr)
        for(int tmp:line)
                //这才能按序取到数组每个数字

     29.小数类型(double、float)不能用==判断是否相等

    由于计算机计算小数都存在误差,所以直接用==很难判断

    double a=1/3;
    double b=0.333333d;
    if(a==b)
    ...

    应该用特定的精度来判断

    double a=1/3;
    double b=0.333333d;
    double dis=1e-6;
    if(Math.abs(a-b)<dis)
    ...
  • 相关阅读:
    Android自定义之仿360Root大师水纹效果
    Android之TextView的Span样式源码剖析
    Android之TextView的样式类Span的使用详解
    随着ScrollView的滑动,渐渐的执行动画View
    仿微信主界面导航栏图标字体颜色的变化
    android自定义之 5.0 风格progressBar
    Android性能优化之内存篇
    Android性能优化之运算篇
    How to install Zabbix5.0 LTS version with Yum on the CentOS 7.8 system?
    How to install Zabbix4.0 LTS version with Yum on the Oracle Linux 7.3 system?
  • 原文地址:https://www.cnblogs.com/cckong/p/14257040.html
Copyright © 2011-2022 走看看