首页 > 编程语言 >javaSE基础06(final,常用类,基本数据类型的封装)

javaSE基础06(final,常用类,基本数据类型的封装)

时间:2023-10-14 14:11:29浏览次数:40  
标签:06 String int 数据类型 123 str 字符串 javaSE

  • Final关键字(用法:类不想被人继承  ):
  1. 修饰类:最终的类,不可以被继承  比如String;
  2. 修饰方法:方法不可以被重写;
  3. 修饰属性:不可以被重新赋值,但是可以改变变量里的内容;
public class Student {
    String name;
    public static void main(String[] args) {
        final Student stu=new Student();
//        stu=new Student;新对象不能赋给stu
        stu.name="张三";
    }
  • 不可变量
  1. 成员不可变量  可以不直接赋值,但是必须再构造方法中赋值
  final int sex;//成员不可变量可以不直接赋值,但是必须再构造方法中赋值
    public Student() {
        sex=12;
    }
    public Student(int sex) {
        this.sex=sex;
    }
  • 常量
  1. 用public static final 来修饰;
  2. 常量名一般要大写;
  3. 必须给与初始值;(用static修饰才是类的);
  4. 也可以再静态代码块中初始化;
            public static final int a;
            static {
             a=23;
            }
  • object
  1. 所有的引用类型默认继承object;
  2. object是所有引用类型的超级父类;
  3. object中的属性和方法:toString equals  hashcode
  • == 和 .equals
  1. == 在引用类型中比较的是是否是同一个对象,比较内存地址是否是同一个;

  2. 在基本数据类型中==比较的是值是否是一样的;

  3. .equals  定义在Object里,比较引用类型的对象内容是否是一样,使用equals方法,自定义类中需要重写equals;

  4. String会重写Object里的equal方法,会判断字符串内容相不相等;

  • String
  1. 以值的方法声明字符串,  String str="123";

  2. String长度  String.length( ),原字符串永远不会发生变化;
  3. 获取字符串内容;
        str=new String("123");
            for(int i=0;i<str.length();i++){
                System.out.println(str.charAt(i));
            }
  4. 获取下标对应得字符charAt  

    char c=str.charAt(4);
  5. 截取字符串  substring
    String substr=str.substring(6,14);
    String substr=str.substring(6);//打印包括下标6在内的以后的所有数
    //substring(StartIndex,endIndex) 左闭右开
  6. 截取字符串的案例:
    //定义一个方法,接受一个字符串,接受一个整数num,将这个字符串切割成每num个字符为一段的数组 
        public static String[] accept0(String str, int num) {
            int count = str.length() / num + (str.length() % num == 0 ? 0 : 1);
            String[] strs = new String[count];
            for (int i = 0; i < count; i++) {
                if (str.length() <= num) {
                    strs[i] = str; 
                } else {
                    strs[i] = str.substring(0, num);
                    str = str.substring(num);
                }
            }
            return strs;
        }
  7. 查找子串出现的位置(下标)indexof;用法:总字符串.indexof("")  关键点:找不到对应的数据要返回-1;
    int index=str.indexOf("2023");//从前往后找
           index=str.lastIndexOf("2");//从后往前找 都找的第一遇到字符的位置
  8. 分割字符串;
        str="12345.123.4523.45";
        String[] arr=str.split("\\.");
    //regex正则表达式 .代表任意字符 \\.java转译 正则表达式转译 System.out.println(Arrays.toString(arr));
  9. 去除前后空白位置:
    str="  123   123   123";
    String res=str.trim();//去除前后空白位置
    System.out.println(res);
  10. 把字符都转换为小写或大写;
    //5把字符都转换为小写
            str.toLowerCase();
            //把字符转换为大写
            str.toUpperCase();
  11. 拼接字符串 + 拼接完得到的都是字符串;
            str="123"+"123"+str;
            str="123"+new Object();
            //+ 的优先级是一样的
            System.out.println(12+23+"");//35
            System.out.println(""+12+23);//1223
  12. 验证A串是否是B串的子串;
    public boolean method(String big,String small){
            if (big==null){
                return false;
            }
            int index=big.indexOf(small);
            return index!=-1;
        }
  13. 字符串拼接

    1. 因为字符串+拼接会产生很多中间量,并且这些中间量会永久占用空间; 
    2. 所以尽量避免使用+拼接字符串的形式,循环;
    3. 解决方案,使用一个数组存储要拼接的数据,拼接完成后转成字符串,可以有效避免中间量的生成;
    4. 工具类:
      1. StringBuilder;
                StringBuilder stringBuilder=new StringBuilder();
                //拼接
                stringBuilder.append("123");//追加
                for(int i=1;i<=9;i++){
                    stringBuilder.append(i);
                }
                String str=stringBuilder.toString();//拼接完成的数组转化成字符串
                System.out.println(str);
                //new StringBuilder(12)  StringBuilder对象的value书组长度默认是12
                //new StringBuilder("ab")创建StringBuilder对象并将”ab“拼接在value数组
        
                //默认长度
                //StringBuilder的value默认长度是16
                //扩容
                //原来容量的双倍+2
            }
      2. StringBuffer;
  • 随机数
  1. 第一种方法:double d=Math.random();
  2. 第二种方法:Random r =new Random()/(12)种子数;
  • math
  1. 向上取整  (得到的浮点型)
    double d1=Math.ceil(12.2222);//返回double类型  结果为13.0
  2. 向下取整
    double d2=Math.floor(12.99999);
  3. 四舍五入 (返回整数类型) double会返回long类型,float会返回int类型
    //正数四舍五入,负数五舍六入
            long l1=Math.round(12.2);//注意会隐式转换
  4. 取绝对值
    int a= Math.abs(-12);
  • 时间戳
        long ctm=System.currentTimeMillis();//返回当前时间
        System.out.println(ctm);
        System.gc();//呼叫垃圾回收
     system.exit(0)//退出,下面程序不会再进行
  1. 把Date数据类型转化成yyyy-MM-dd HH:mm:ss SSS类型,(返回当前时间)
            Date date =new Date();
            System.out.println(date);
            //把date日期格式化转化成yyyy-MM-dd HH:mm:ss SSS
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            String sdfstr=sdf.format(date);
            System.out.println(sdfstr);
  • Calender 日历类
  1. 自定义时间
            //Calendar日历类 没有公共的构造方法 protected
            Calendar c=Calendar.getInstance();
            c.set(Calendar.YEAR,3023);//自定义年份
       int year =c.get(Calendar.YEAR);//获取定义的年份
  2. 将日历类型数据转化
            c.getTimeInMillis();//long类型,date对象的时间戳
            c.getTime();//返回当前的日历对象对应的Date对象
  • 基本数据类型的封装
  1. java为了达到万物皆对象的理念,每一个基本数据类型都提供了封装类型;
  2. 封装类型包括Byte Short Intrger Long Float Double Charcter;
  3. 字符串转成 int数组的方法;
    int num=Integer.parseInt("123");
  4. 装箱和封箱;
            Integer b=12;//装箱:将基本数据类型装缓存对应的封装类型
            int a=new Integer(12);//拆箱:将基本数据类型的封装类型的对象转化成基本数据类型的值
            //缓存
  5. 基本数据类型的封装类型:整数类型和字符类型会默认缓存-128~127每一个数值  浮点型没有缓存;
            Integer i4=212;
            Integer i5=212; 
            System.out.println(i4==i5);//超出封装范围 所以为false
       //Integer类型可以通过-XX:AutoBoxCacheMax 数值  来修改默认缓存的数组
  6. 基本数据类型的封装类型之间没有隐式转换;
            Integer i1=12;
            Byte b1=127;
    //      i1=b1;基本数据类型的封装类型之间没有隐式转化
  7. 不能使用双等号进行跨类比较;
    //        System.out.println(i1==b1);如:Integer和Byte
  8. valueOf("") 将其中的内容取出,转成当前类的类型;
            Integer u=Integer.valueOf("123");//将其中的内容取出,转成当前类的类型

标签:06,String,int,数据类型,123,str,字符串,javaSE
From: https://www.cnblogs.com/wxy01/p/17754293.html

相关文章

  • 统信操作系统UOS1060设置自动关机02
    原文链接:统信UOS1060设置自动关机02hello,大家好啊,今天继续给大家介绍一篇如何在统信UOS1060上实现自动关机的文章,本篇文章采用创建系统服务(Systemd)的方式。你可以创建一个systemd服务来在特定时间执行关机命令。这需要创建一个服务文件和一个timer文件。Timer文件定义了何时运行服......
  • 晨控CK-GW06系列网关与汇川可编程控制器MOSBUSTCP通讯手册
    晨控CK-GW06系列网关与汇川可编程控制器MOSBUSTCP通讯手册晨控CK-GW06系列是支持标准工业通讯协议MODBUSTCP的网关控制器,方便用户集成到PLC等控制系统中。本控制器提供了网络POE供电和直流电源供电两种方式,确保用户在使用无POE供电功能的交换机时可采用外接电源供电;系统还集......
  • TypeScript数据类型
    TypeScript数据类型:string:字符串number:数字boolean:true/falsestring[]:数组any:可以是任何类型。当你不希望某个特定的值导致类型检查错误时,你可以使用它。以下都不会报编译异常letvalue:any;value.foo.bar;//OKvalue.trim();//OKvalue();//OKnewvalue();//OKvalue[0][......
  • 05/06. 类型转换
    publicclassDeom05{publicstaticvoidmain(String[]args){inti=128;byteb=(byte)i;//内存溢出doublec=i;//强制转换(类型)变量名高----低//自动转换低-----高System.out.println(i);Sys......
  • 06 模板语法
    template:模板主要讲的是vue的基本使用语法1.文本插值和js的结合使用2.原始HTML......
  • 低功耗Sub-1G全频段收发一体芯片DP4306 适用无线对讲机 工业数据采集等应用
    无线电对讲机既是移动通信中的一种专业无线通信工具,又是一种能满足人们生活需要的具有消费类产品特点的消费工具。顾名思义移动通信就是通信一方和另一方在移动中实现通信。它是一种无线的可在移动中使用的一点对多点进行通信的终端设备,可使许多人同时彼此交流,使许多人能同时听到......
  • Deom02基本数据类型
    publicclassDeom02{publicstaticvoidmain(String[]args){//八大基本数据类型//整数intnum1=10;//最常用bytenum2=20;shortnum3=30;longnum4=40L;//Long类型要在数字后加L//小数:浮点数......
  • KBL406-ASEMI小功率开关电源KBL406
    编辑:llKBL406-ASEMI小功率开关电源KBL406型号:KBL406品牌:ASEMI封装:KBL-4恢复时间:>50ns正向电流:4A反向耐压:600V芯片个数:4引脚数量:4类型:整流桥、功率整流器件特性:功率整流器件、高性能整流桥浪涌电流:200A正向压降:1.10V封装尺寸:如图工作温度:-55°C~150°CKBL406特性超快速切换,实现高效率......
  • KBL406-ASEMI小功率开关电源KBL406
    编辑:llKBL406-ASEMI小功率开关电源KBL406型号:KBL406品牌:ASEMI封装:KBL-4恢复时间:>50ns正向电流:4A反向耐压:600V芯片个数:4引脚数量:4类型:整流桥、功率整流器件特性:功率整流器件、高性能整流桥浪涌电流:200A正向压降:1.10V封装尺寸:如图工作温度:-55°C~150°CKBL406特性超......
  • 对于ogg19 mysql 中如果mysql中存在json数据类型,进程会abend问题报错信息 OGG-00774
    对于ogg19mysql是不支持json的这个数据类型还是比较常见的,这个数据类型是在ogg21才开始支持,对于这种报错可以打补丁进行修复Bug29998662:MySQLExtractAbendsWithoutErrorwithJSONdatatypesinbinlog 参考自:MySQLExtractAbendsWithoutErrorWithJSONDataT......