JAVA学习笔记(二十四)

静态代码块

静态代码块的格式是:

 public class 类名称 {
    static {
    //静态代码块的内容
    }
 }

特点:当第一次用到本类时,静态代码块执行唯一的一次。

静态内容总是优先于非静态,所以静态代码块比构造方法先执行。

静态代码块的典型用途:

用来一次性地对静态成员变量进行赋值。

 public class Person {
     static {
         System.out.println("静态代码块执行!");
     }
     public Person(){
         System.out.println("构造方法执行!");
     }
 }
 public class Demo04Static {
     public static void main(String[] args){
         Person one =new Person(); //静态代码块执行!&构造方法执行!
         Person two =new Person();//构造方法执行!  只进行一次静态代码块
     }
 }

数组工具Arrays

java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。

public static String toString(数组):将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3...]

public static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序。

备注:

1.如果是数值,sort默认按照升序从小到大

2.如果是字符串,sort默认按照字母升序

3.如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。(今后学习)

 public class Demo01Arrays{
     public static void main(String[] args){
         int[] intArray = {10,20, 30};
         //将int[]数组按照默认格式变成字符串
         String intstr=ArraystoString(intArray); 
         System.out.println(intstr);//[10,20,30]
         int[] array1 = {2,1, 3, 10, 6}; 
         Arrays.sort(array1);
         System.out.println(Arrays.toString(array1));//[1,2,3,6,10]
         
         String[] array2 = {"bbb", "aaa", "ccc"}; 
         Arrays.sort(array2);
         System.out.println(Arrays.toString(array2)); // [aaa, bbb, ccc]
     }
 }

Arrays练习:字符串倒序排列

题目:请使用Arrays相关的API,将一个随机字符串中的所有字符升序排列,并倒序打印。

 public class Demo02ArraysPractise{
     public static void main(String[] args){
         String str ="asv76agfqwdfvasdfvjh";
         //如何进行升序排列:sort
         //必须是一个数组,才能用Arrays.sort方法
         //string-->数组,用toCharArray 
         char[] chars=str.toCharArray();
         Arrays.sort(chars);//对字符数组进行升序排列
         //需要倒序遍历
         for (int i = chars.length - 1; i >= 0; i--) {
             System.out.println(chars[i]);
         }
     }
 }
数学工具类Math

java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作

public static double abs(double num):获取绝对值。有多种重载。

public static double ceil(double num):向上取整。

public static double floor(doublenum):向下取整。

public static long round(doublenum):四舍五入。

Math.PI代表近似的圆周率常量(double)。

 public static void main(String[] args){
     //获取绝对值
     System.out.println(Math.abs(3.14));//3.14 
     System.out.println(Math.abs(0));// 0
     System.out.println(Math.abs(-2.5));//2.5 
     System.out.println("================");
 ​
     // 向上取整
     System.out.println(Math.ceil(3.9));//4.0 
     System.out.println(Math.ceil(3.1));//4.0 
     System.out.println(Math.ceil(3.0));//3.0 
     System.out.println("================");
 ​
     //向下取整,抹零
     System.out.println(Math.floor(30.1));// 30.0 
     System.out.println(Math.floor(30.9));// 30.0 
     System.out.println(Math.floor(31.0));// 31.0
     //四舍五入
     System.out.println(Math.round(20.4));// 20 
     System.out.println(Math.round(10.5));// 11 
 }

Math练习:小学数学真题

题目:

计算在-10.8到59之间,绝对值大于6或者小于21的整数有多少个?

分析:

1.既然已经确定了范围,for循环

2起点位置-10.8应该转换成为-10,两种办法:

2.1可以使用Math.ceil方法,向上(向正方向)取整

2.2强转成为int,自动舍弃所有小数位

3.每一个数字都是整数,所以步进表达式应该是num++,这样每次都是+1的。

4.如何拿到绝对值:Math.abs方法。

5.一旦发现了一个数字,需要让计数器++进行统计。

 public class Demo04MathPractise{
     public static void main(String[] args){
         int count=0;// 符合要求的数量
         double min=-10.8; 
         double max=5.9:
 ​
         //这样处理,变量i就是区间之内所有的整数 
         for (int i =(int) min; i < max; i++) {
             int abs=Math.abs(i);//绝对值 
             if (abs > 6 || abs < 2.1) {
                 System.out.println(i); 
                 count++;
             }
         }
         System.out.println("总共有:"+count); // 9
     }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值