Java语法基础

封装类

  • 所有的基本类型都有对用的类类型
  • 包装类(封装类)
    这里写图片描述
  • Number类对应有Byte,Short,Integer,Long,Float,Double这么多子类。

Integer 封装类

常用方法

这里写图片描述

        Integer i = new  Integer(5);
        Integer x = new Integer("34");
        System.out.println(it instanceof Number); //ture
        System.out.println(Integer.MIN_VALUE);//求一个分装类的最大最小值
        System.out.println(Character.toUpperCase('a'));//A
        System.out.println(Character.toLowerCase('a'));//a
        System.out.println(Character.toString('a'));//a
    String str = "孙悟空";
    byte [] strByte = str.getBytes();//将字符创转换成字节数组
    for (byte b : strByte) {
        System.out.println(Integer.toHexString(b));//将字节类型数据已16进制输出
    }

字符串之间的转换

//字符串与
//数字转字符串3种方法
     int i =2;
     String str1 = Integer.toString(i);
     String str2 = String.valueOf(i);
     String str3 =  i + "";

//字符串转数字2中方法    
     String str  ="3";
     int y =  Integer.valueOf(str);
     int z = Integer.parseInt(str);

装箱&拆箱

  int i =5;
  //将int 装换成integer类类型
  Integer it=  new Integer(i);
  //自动装箱
  Integer it = i;//直接使用=号将基础类型转换成封装类型
  //将innteger 装换成int 类型
  int y = it.valueOf(it);
  //拆箱,与装箱相对,将封装类型转化成基本类型
  int y = it;

Character 封装类

//char 对应的封装类是character
        char c ='c';
        Character C = c;//自动装箱
        c = C;//自动拆箱

character 常用方法

//is系列可以使用代码补全查看
        System.out.println(Character.isLetter('a')); //ture
        System.out.println(Character.isDigit('7'));//ture
        System.out.println(Character.isWhitespace('a'));//false
        System.out.println(Character.isUpperCase('a'));//false
        System.out.println(Character.isLowerCase('a'));//ture
  • mac快速整理代码:command + shift + F

String 封装类

字符串创建

String str = "eric";//JAVA虚拟机遇见字面值就自动创建一个字符对象
String str1 = new String("very"); //通过new创建一个对象
char [] char1 ={'c','o','o','l'};  
String str2 = new String(char1);//通过字符数组创建字符串
String str3 = str + ' ' +str1+' ' + str2;
System.out.println(str3); //eric very cool
  //生成0-Z字符池
        String pool = new String();
        for (int i = '0'; i < 'Z'; i++) {

            pool += (char) i;
        }
        System.out.println(pool);

字符串分割

        String[] aa = "aaa|bbb|ccc".split("\\|");//以|未分割标志进行分割。
        for (int i = 0; i < aa.length; i++) {
            System.out.println("--" + aa[i]);
        }

生成随机字符串

        String str5 = new String();
        for (int i = 0; i < 5; i++) {
            while(true){
//              System.out.println();
                int i1 = (int)(Math.random()*100);
                if((i1>'0')&(i1<'Z')){
                    str5 += (char)i1;
                 break;
                }
            }
            System.out.println(str5);
        }

String与StringBuffer 的区别

//作为参数时前者不可以被修改,后者可以被修改
public class test extends 数字封装类 {
    public static void main(String[] args) 
    {
        String str1 = "eric";
        tell(str1);
        System.out.println(str1);       
    }
     public static void tell (String s)
     {
         s = "ere";
     }
}
//eric
public class test extends 数字封装类 {

    public static void main(String[] args) 
    {
        StringBuffer str2 = new  StringBuffer("eric");//注意创建的区别
        tell(str2);
        System.out.println(str2);       
    }
     public static void tell (StringBuffer s)
     {
         s.append("y");
     }
}
//ericy

str + = “y”;会改变,但是内部是从新创建了一个内存空间的。
StringBulider 类似StringBuffer只不过具有线程安全,速度更快。

数组

  • 数组复制
System.arraycopy(src, srcPos, dest, destPos, length)
src: 源数组
srcPos: 从源数组复制数据的启始位置
dest: 目标数组
destPos: 复制到目标数组的启始位置
length: 复制的长度
  • Arrays
    Arrays是针对数组的一个工具类,调高对数组的操作效率。
    这里写图片描述
int [] a = new int[]{0,1,2,3,4};
int [] b = Arrays.copyOfRange(a, 0,3);//(目标,起始位,长度)
//
System.out.println(Arrays.toString(a));//将数组转换成字符串
//
Arrays.sort(a);//进行排序
//搜索
Arrays.sort(a);
System.out.println("数字 4出现的位置:"+Arrays.binarySearch(a, 4));
//判断两个数组是否相等
Arrays.equals(a, b);
//使用一个值填充整个数组
 Arrays.fill(a, 5);

数学方法

常用方法

  • Math所有的方法都是静态的所以可以直接使用类名.方法名
    这里写图片描述
        long l = Math.round(12.6);
        double d= Math.floor(14.3);
        double d2 = Math.ceil(13.5);
        double d3 = Math.random();
        //数学方法
        float f1 = 7.4f;//注意定义float的格式
        //四舍五入
        int F1 = Math.round(f1);
        //0~1之间的随机数
        float f3 = (float)Math.random();

        float f4 = Math.sqrt(f3);
        float f5 = Math.pow(2,3);

Date 时间类

// 创建时间
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY/MM/DD-HH/mm/ss");
        System.out.println(simpleDateFormat.format(date));
// 从字符串中解析日期
        String string = "2017/02/11-14:20:21";
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("YYYY/MM/DD-HH:mm:ss");
        Date date2 = simpleDateFormat2.parse(string);
        System.err.println(date2);

calendar 时间类

一般时间操作采用calendar类,不适用Date 类


    Calendar c= Calendar.getInstance();
        int year = c.get(Calendar.YEAR);//获取年,下类似
        int moth = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);//这个月的第几天
        int day1 = c.get(Calendar.DAY_OF_WEEK);
        int min = c.get(Calendar.MINUTE);
        int sec = c.get(Calendar.SECOND);
        int millsec = c.get(Calendar.MILLISECOND);//当前毫秒数

Date d = c.getTime();//将calendar 转换为Date对象

附 while 循环计算三位简单密码

package reward;

public class number {
    public static void main(String[] args) {

        String mima = "123";
        String m = new String();
        while(true)
        {
            int x = (int)(Math.random()*10);
            char c = mima.charAt(0);
            if(Integer.parseInt(Character.toString(c))==x)
            {
                m  =String.valueOf(x);
                System.out.println("破解1/3");
                while(true)
                {
                    int x1 = (int)(Math.random()*10);
                    char c1 = mima.charAt(1);
                    if(Integer.parseInt(Character.toString(c1))==x1)
                    {
                        m  +=String.valueOf(x1);
                        System.out.println("破解2/3");
                        while(true)
                        {
                            int x2 = (int)(Math.random()*10);
                            char c2 = mima.charAt(2);
                            if(Integer.parseInt(Character.toString(c2))==x2)
                            {
                                m  +=String.valueOf(x2);
                                System.out.printf("破解完成,是%s",m);
                                break;
                            }
                        }
                        break;
                    }
                }
                break;
            }
        }


    }

}
/*
破解1/3
破解2/3
破解完成,是123
*/

附 递归算法求N阶乘

//求阶乘
package reward;

public class d {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
//     d(3);
     System.out.println(d(10));
    }
    public static double d (double  n)
    {
        if(n==0)
        {
            return 0;
        }
        if(n==1)
        {
            return 1;
        }
        return n*d(n-1);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值