• 未归纳的知识


    Math.cos为计算弧度的余弦值(参数需要的是弧度),Math.toRadians函数将角度转换为弧度
    计算余弦值使用Math类的cos()方法,默认是弧度
    toRadians()是将角度转换为弧度
    toDegrees()是将弧度转换为角度

    三大注解

    Override 注解
    指明被注解的方法需要覆写超类中的方法.
    如果某个方法使用了该注解,却没有覆写超类中的方法(比如大小写写错了,或者参数错了,或者是子类自己定义的方法),编译器就会生成一个错误.

    Deprecated 注解

    可以修饰类、方法、变量,在java源码中被@Deprecated修饰的类、方法、变量等表示不建议使用的,可能会出现错误的,可能以后会被删除的类、方法等,如果现在使用,则在以后使用了这些类、方法的程序在更新新的JDK、jar包等就会出错,不再提供支持。     个人程序中的类、方法、变量用@Deprecated修饰同样是不希望自己和别人在以后的时间再次使用此类、方法。  当编译器编译时遇到了使用@Deprecated修饰的类、方法、变量时会提示相应的警告信息。

    Suppresswarnings 注解

    可以达到抑制编译器编译时产生警告的目的,但是很不建议使用@SuppressWarnings注解,使用此注解,编码人员看不到编译时编译器提示的相应的警告,不能选择更好、更新的类、方法或者不能编写更规范的编码。同时后期更新JDK、jar包等源码时,使用@SuppressWarnings注解的代码可能受新的JDK、jar包代码的支持,出现错误,仍然需要修改。
     
    识别合法的构造方法;
      1:构造方法可以被重载,一个构造方法可以通过this关键字调用另一个构造方法,this语句必须位于构造方法的第一行;
        重载:方法的重载(overload):重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。  

      2 当一个类中没有定义任何构造方法,Java将自动提供一个缺省构造方法;
      3 子类通过super关键字调用父类的一个构造方法;
      4 当子类的某个构造方法没有通过super关键字调用父类的构造方法,通过这个构造方法创建子类对象时,会自动先调用父类的缺省构造方法
      5 构造方法不能被static、final、synchronized、abstract、native修饰,但可以被public、private、protected修饰;
      6 构造方法不是类的成员方法;
      7 构造方法不能被继承。
     
     
     
    Math函数中:
    ceil:大于等于 x,并且与它最接近的整数。
    floor:小于等于 x,且与 x 最接近的整数。
    ceil:天花板数,向上取整。
    floor:地板数,向下取整
     
    注意的是。Math.ceil(-0.5)是等于-0.0的,
    因为:
    至于为什么是-0.0,而不是0.0,因为源码注释:“If the argument value is less than zero but greater than -1.0, then the result is negative zero ”,翻译过来就是:如果参数是-1.0到0.0之间的数,结果是-0.0。
     
     
     
    ArrayList list=new ArrayList();   这种是默认创建大小为10的数组,每次扩容大小为1.5倍
    ArrayList list=new ArrayList(20);  这种是指定数组大小的创建,没有扩充
     
     
    Java中有两种传递方式,值传递和引用传递
    public class Example{
        String str=new String("hello");
        char[]ch={'a','b'};
        public static void main(String args[]){
            Example ex=new Example();
            ex.change(ex.str,ex.ch);
            System.out.print(ex.str+" and ");
            System.out.print(ex.ch);
        }
        public void change(String str,char ch[]){
            str="test ok";
            ch[0]='c';
        }
    }

    输出是:hello and cb,

    为什么str不会变呢,因为String是一个String类是final类型的,不能继承和修改这个类,其实是隐含的让Java生成一个新的String对象,那么就与原来的“Hello”没有任何关系,当函数结束,str作用结束,所以输出的还是“Hello”。 char ch[] 是传递引用,修改了原内容。

    链接:https://www.nowcoder.com/questionTerminal/15b1429e6c364c3bbe6e8134a519f2a3
    来源:牛客网
    
    byte b1=1,b2=2,b3,b6,b8;
    final byte b4=4,b5=6,b7;
    b3=(b1+b2);  /*语句1*/
    b6=b4+b5;    /*语句2*/
    b8=(b1+b4);  /*语句3*/
    b7=(b2+b5);  /*语句4*/
    System.out.println(b3+b6);



    Java表达式转型规则由低到高转换
    1、所有的byte,short,char型的值将被提升为int型;

    2、如果有一个操作数是long型,计算结果是long型;

    3、如果有一个操作数是float型,计算结果是float型;

    4、如果有一个操作数是double型,计算结果是double型;
    5、被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化。
    --------------解析--------------
    语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;
    语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;
    语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);
    语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变
  • 相关阅读:
    SpringDataJpa
    #pragma pack(n)的使用
    jquery中的ajax方法参数
    rapidjson的使用
    Linux下Qt安装
    jsoncpp 0.5 ARM移植
    GoAhead2.5移植到ARM教程
    Qt 4.7.2移植到ARM教程
    虚函数与纯虚函数的区别
    海康、大华IpCamera RTSP地址和格式
  • 原文地址:https://www.cnblogs.com/furaywww/p/8782895.html
Copyright © 2020-2023  润新知