JAVA- 类型和泛型

   日期:2020-07-10     浏览:77    评论:0    
核心提示:泛型public class MaximumTest {public static void main(String[] args) {System.out.printf(%d,%d和%d 中最大的数为 %d\\n\\n, 3, 4, 5, maximum(3, 4, 5));System.out.printf(%.1f,%.1f和%.1f 中最大数为%.1f\\n\\n, 4.3,7.7,6.3,maximum(4.3, 7.7, 6.3));}private static

泛型
public class MaximumTest {
public static void main(String[] args) {
System.out.printf("%d,%d和%d 中最大的数为 %d\n\n", 3, 4, 5, maximum(3, 4, 5));
System.out.printf("%.1f,%.1f和%.1f 中最大数为%.1f\n\n", 4.3,7.7,6.3,maximum(4.3, 7.7, 6.3));
}

private static <T extends Comparable<T>> T maximum(T x, T y, T z) {
    T max = x;
    if (y.compareTo(max) > 0) {
        max = y;
    }
    if (z.compareTo(max) > 0) {
        max = z;
    }
    return max;
}

}
泛型是类类型,天生为了模板而生。像上述代码若在 golang 中,意味着必须写两个针对不同参数类型相同逻辑的比较函数。从某种意义上来讲,一般对象的类型描述了该对象具体是什么,而泛型化的参数则说明了该参数可用类型范围或区间或参数使用的类型必备某些限制性条件(比如要求类型实现某个接口或类),具有一定的灵活性。

范围
List<?> data 类型通配符一般是使用?代替具体的类型参数
List<? extends Number> data 通配符泛型值接受 Number 及其下层子类类型
List<? super Number> data 表示类型只能接受 Number 及其三层父类类型

换而言之,extend 或 super 指向参数是特定类型的子孙后代,还是它的千年老祖

类型
java 的类型字面量,有一些小意思,比如长整形,浮点会以 l,f 结尾,以强调它们各自类型性质的存在感。
至于数组概念与 Go 一致,有序有长度
Vector 向量类型 生来具有动态扩展性,这点同 py,go 中的 slice 类似。从某种意义上讲,数组是其它数据结构的鼻祖,后续 stack 之类大多是它的子孙后代。

类型转换
类型由低到高转换
byte,short,char—> int —> long—> float —> double

容量大的类型转换为容量小的类型必须进行强制类型转换
浮点数到整数的转换是舍弃小数得到的,而非四舍五入

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服