• javaSE基础(二)


    一、格式化

    1、printf格式化输出 

    语法:public PrintStream printf(String format, Object ... args) 

    占位符: %[index$][标识]*[最小宽度][.精度]转换符 。

    转  换  符

    说    明 

    示    例

    %s

    字符串类型

    "mingrisoft"

    %c

    字符类型

    'm'

    %b

    布尔类型

    true

    %d

    整数类型(十进制)

    99

    %x

    整数类型(十六进制)

    FF

    %o

    整数类型(八进制)

    77

    %f

    浮点类型

    99.99

    %a

    十六进制浮点类型

    FF.35AE

    %e

    指数类型

    9.38e+5

    %g

    通用浮点类型(f和e类型中较短的)

     

    %h

    散列码

     

    %%

    百分比类型

    %n

    换行符

     

    %tx

    日期与时间类型(x代表不同的日期与时间转换符

    代码示例:

    public static void main(String[] args) {
            //将整数a输出
            int a = 8976;
            System.out.printf("%d
    ",a);
            //将a以3位整数的形式输出
            System.out.printf("%3d
    ",a);
            
            //将浮点数b输出
            double b = 87.9856;
            System.out.printf("%f
    ",b);
            //将浮点数b保留两位输出
            System.out.printf("%.2f
    ",b);
            //将浮点数b以4位形式输出,并且其中小数占两位
            System.out.printf("%4.2f
    ",b);
        }
    打印结果:

    8976
    8976
    87.985600
    87.99
    87.99

    2、String.format

    方法参数1:public static String format(String format, Object... args) 

    方法参数2:public static String format(Locale l, String format, Object... args)

    public static void test01() {
            Date now  = new Date();
            String str = String.format("%tF", now);
            System.out.println(str);
            
             /*
            c,星期六 十月 27 14:21:20 CST 2007
            F,2007-10-27
            D,10/27/07
            r,02:25:51 下午
            T,14:28:16
            R,14:28
            b, 月份简称
            B, 月份全称
            a, 星期简称
            A, 星期全称
            C, 年前两位(不足两位补零)
            y, 年后两位(不足两位补零)
            j, 当年的第几天
            m, 月份(不足两位补零)
            d, 日期(不足两位补零)
            e, 日期(不足两位不补零)
            H, 24小时制的小时(不足两位补零)
            k, 24小时制的小时(不足两位不补零)
            I, 12小时制的小时(不足两位补零)
            i, 12小时制的小时(不足两位不补零)
            M, 分钟(不足两位补零)
            S, 秒(不足两位补零)
            L, 毫秒(不足三位补零)
            N, 毫秒(不足9位补零)
            p, 小写字母的上午或下午标记,如中文为“下午”,英文为pm
            z, 相对于GMT的时区偏移量,如+0800
            Z, 时区缩写,如CST
            s, 自1970-1-1 00:00:00起经过的秒数
            Q, 自1970-1-1 00:00:00起经过的豪秒
             */
        }

     二、水仙花数

    水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)

    public static void test02(int n) {
            int ge,shi,bai;
            for(int i=1;i<=n;i++) {
                ge = i%10;//个位
                shi = i/10%10;//十位
                bai = i/100%10;//百位
                if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == i) {
                    System.out.println(i);
                }
            }
        }

    三、鸡兔同笼

    有若干只鸡兔同在一个笼子里,从上面数,有88个头,从下面数,有244只脚。问笼中各有多少只鸡和兔?

    public static void test03() {
            /**
             * 鸡x
             * 兔y
             * x+y = 88
             * 2*x+4*y = 244
             * 用双层for循环求
             */
            for(int x=1;x<=87;x++) {
                for(int y=1;y<=87;y++) {
                    if((x+y==88) && (2*x+4*y ==244)) {
                        System.out.println("鸡:"+x+" ;兔:"+y);
                    }
                }
            }
        }

    四、素数(质数)

    质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。

    打印1-1000之间的素数

    public static void test04() {
            for(int i=2;i<=999;i++) {
                boolean flag = true;//flag为true表示就是素数
                for(int j=2;j<=i/2;j++) {
                    if(i%j == 0) {//取余为0表示不是素数
                        flag = false;//flag为false表示不是素数
                        break;//跳出当前循环
                    }
                }
                if(flag == true) {
                    System.out.println(i+"是素数");
                }else {
                    //System.out.println(i+"不是素数");
                }
            }
        }

     五、java中的各种修饰符

    访问修饰符

    名称

    说明

    备注

    public

    可以被所有类访问(使用)

    public类必须定义在和类名相同的同名文件中

    package

    可以被同一个包中的类访问(使用)

    默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中

    修饰符

    名称

    说明

    备注

    final

    使用此修饰符的类不能够被继承

    abstract

    如果要使用abstract类,之前必须首先建一个继承abstract类的新类,新类中实现abstract类中的抽象方法。

    类只要有一个abstract方法,类就必须定义为abstract,但abstract类不一定非要保护abstract方法不可

    访问修饰符

    名称

    说明

    备注

    public

    可以被任何类访问

    protected

    可以被同一包中的所有类访问

    可以被所有子类访问

    子类没有在同一包中也可以访问

    private

    只能够被当前类的方法访问

    缺省(无访问修饰符)

    可以被同一包中的所有类访问

    如果子类没有在同一个包中,也不能访问

    修饰符

    名称

    说明

    备注

    static

    静态变量(又称为类变量,其它的称为实例变量)

    可以被类的所有实例共享。

    并不需要创建类的实例就可以访问静态变量

    final

    常量,值只能够分配一次,不能更改

    注意不要使用const,虽然它和C、C++中的const关键字含义一样,可以同static一起使用,避免对类的每个实例维护一个拷贝

    transient

    告诉编译器,在类对象序列化时,此变量不需要持久保存

    主要是因为改变量可以通过其它变量来得到,使用它是为了性能的问题

    volatile

    指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理

    修饰符

    名称

    说明

    备注

    static

    静态方法(又称为类方法,其它的称为实例方法)

    提供不依赖于类实例的服务

    并不需要创建类的实例就可以访问静态方法

    final

    防止任何子类重载该方法

    注意不要使用const,虽然它和C、C++中的const关键字含义一样

    可以同static一起使用,避免对类的每个实例维护一个拷贝

    abstract

    抽象方法,类中已声明而没有实现的方法

    不能将static方法、final方法或者类的构造器方法声明为abstract

    native

    用该修饰符定义的方法在类中没有实现,而大多数情况下该方法的实现是用C、C++编写的。

    参见Sun的Java Native接口(JNI),JNI提供了运行时加载一个native方法的实现,并将其于一个Java类关联的功能

    synchronized

    多线程的支持

    当一个此方法被调用时,没有其它线程能够调用该方法,其它的synchronized方法也不能调用该方法,直到该方法返回

    六、什么是重载

    同名的方法不同参数(类型或个数不同),与返回值没有关系,是多态的一种体现。

            public void getSum(int a) {
            System.out.println("和为:"+a);
        }
        public void getSum(int a,int b) {
            System.out.println("和为:"+a+b);
        }
        public void getSum(int a,int b,int c) {
            System.out.println("和为:"+a+b+c);
        }

    七、静态方法有什么特点

    a)、使用关键字static

    b)、静态的成员属于类,一般用类名直接调用,无需实例化

    c)、非静态可以直接调用静态,静态需通过对象名调用非静态

    d)、静态是共享的,非静态是独享的

  • 相关阅读:
    C函数
    iOS开发- 蓝牙后台接收数据(BLE4.0)
    相册权限 第一次安装、用户是否授权
    使用免费的产品搭建直播系统
    搭建HTTP Live Streaming直播系统
    HTTP Live Streaming直播(iOS直播)技术分析与实现
    个人工作总结03
    个人工作总结02
    个人工作总结01
    第七周学习进度
  • 原文地址:https://www.cnblogs.com/zsy-code/p/14207676.html
Copyright © 2020-2023  润新知