当前位置: 首页 > news >正文

地下城做解封任务的网站磁县信息港

地下城做解封任务的网站,磁县信息港,农村网站建设必要性,企业网络营销策划方案目录 常用kpimathSystemRuntimeObjectObjectsBigIntegerBigDecima正则表达式包装类 常用kpi 学习目的#xff1a; 了解类名和类的作用养成查阅api文档的习惯 math 工具类。因为是工具类#xff0c;因此直接通过类名.方法名(形参)即可直接调用 abs#xff1a;获取参数绝对… 目录 常用kpimathSystemRuntimeObjectObjectsBigIntegerBigDecima正则表达式包装类 常用kpi 学习目的 了解类名和类的作用养成查阅api文档的习惯 math 工具类。因为是工具类因此直接通过类名.方法名(形参)即可直接调用 abs获取参数绝对值 bug传递的数必须在对应数据类型的取值范围内有相反数和他对应如byte-128到127-128没有值与之对应 ceil向上取值即向数轴的正方向取值注意不是四舍五入 floor向下取值即向数轴的负方向取值注意不是四舍五入 round四舍五入入到较近的偶数如 12.51-13 -12.49--12 max、min取最值底层是三元运算符 max两者之间取大值 min两者之间取小值 pow获取a的b次幂 sqrt:返回开平方根后的值 cbrt返回开立方根后的值 random注意这里是math工具类中的random方法不是Random类中的。math中的random底层还是创建了Random的对象然后采用nextDoublemath中的random获取[0.0,1.0)之间的随机小数。 System 工具类。 计算机的时间原点1970年1月1日 00:00:00-C语言的生日我国1970年1月1日 08:00:00 成员变量 out静态变量因此可以用System.out调用返回一个打印的对象 成员方法 exit终止虚拟机的运行返回状态码0是虚拟机正常停止非0是虚拟机异常停止。不管是非0还是0后面代码都不会执行 currenTimeMillis返回当前系统的时间以毫秒形式 arraycopy(数据源数组起始索引目的地数组起始索引拷贝个数)数组拷贝。 细节1如果两数组都是基本数据类型那么它们必须是同一种数据类型否则会报错。type mismatch异常细节2需要考虑数组的长度如果超出范围会报错。index out of bounds索引越界异常细节3如果两数组都是引用数据类型那么子类类型可以赋值给父类类型 细节中的细节如果此时想要将目的地数组中的父类地址打印出来除了常规的for遍历、定义一个子类对象临时储存器之外注意这时候要将父类强转后再赋值给子类对象临时储存器不强转会报错底层)。可以类似理解成小可以自动转大大则需要强转小也是用水杯和水桶来理解。 Runtime 表示当前虚拟机的运行环境。 getRuntime获取当前系统的运行环境对象。 底层Runtime类私有化了构造方法不给外界创建对象因此提供了get方法获取他的对象不管在哪个类中每次调用这个方法获取到的对象都是唯一的 exit停止虚拟机。非静态需要创建Runtime对象调用availableProcessors获取CPU的线程数maxMemoryJVM能从系统中获得的总内存大小单位字节totalMemoryJVM已经从系统中获得的总内存大小单位字节freeMemoryJVM剩余内存大小exec运行cmd命令。比如指定时间关机选项。 Object Java中的顶级父类。 特点 没有成员变量因为不可能所有子类都能抽取出一个共性来。只有无参构造没有有参构造。 成员方法 toString返回对象的字符串表现形式。该方法被public修饰因此所有类的对象都可以在其虚方法表中调用这个方法因为所有对象的类都默认继承于Object。 System.out.println(s)的底层当我们在形参中输入一个对象类型的s时候底层会尝试调用对象的toString方法先在这个对象的类的成员方法中找如果没有则在它的虚方法表中找发现有该方法从Object继承下来的因此就会调用把对象变成字符串。然后再打印在控制台上打印完毕进行换行。toString的结论如果不想这个对象打印字符串形式而是想看到对象的内部属性成员变量等那么我们在该对象的类中重写Object的toString方法即可在这个重写的方法的代码体中就可以打印对象的成员属性了 equals比较两个对象是否相等。 equals的底层用号判断两个地址值是否相同返回true和false。一般地址值对我们意义不大如果不想比较地址值想比较两个对象中的内部属性值则在调用者的那个类重写equals方法即可。 //用equals方法比较String和StringBuilder package com.itheima.a04objectdemo; public class ObjectDemo3 {public static void main(String[] args) {String s abc;StringBuilder sb new StringBuilder(abc);System.out.println(s.equals(sb));// false//因为equals方法是被s调用的而s属于String类所以equals要看String类中的equals方法而String类中的equals方法源码是先判断形参sb是否为字符串如果是字符串再比较内部的属性但是如果参数不是字符串直接返回falseSystem.out.println(sb.equals(s));// false//因为equals方法是被sb调用的而sb是StringBuilder所以这里的equals方法要看StringBuilder中的equals方法。而在StringBuilder当中没有重写equals方法使用的是Object中的在Object当中默认是使用号比较两个对象的地址值而这里的s和sb记录的地址值是不一样的所以结果返回false} }clone把A对象的属性值完全拷贝给B对象也叫对象拷贝、复制。方法在底层会帮我们创建一个对象并帮我们把原对象调用者的数据拷贝过去。 **一些书写细节**1、要让调用者子类重写Object中的clone方法因为clone在Object中是用protected修饰的在测试类中没有权限访问2、让JavaBean类实现Cloneable接口3、创建原对象并调用clone。 **浅克隆**基本数据类型直接拷贝数据值引用数据类型拷贝地址值。Object中的clone方法用的就是浅克隆。浅拷贝的内存图 **深克隆**基本数据类型直接拷贝数据值引用数据类型重新创建一个对象特殊对于直接赋值的字符串是在串池管理的这些会直接复用而不会创建新的空间 深克隆的内存图 **实现深克隆的方式**在重写的clone方法中自己改代码或者使用第三方工具类。 方法一自己重写方法 //这是一个JavaBean类User实现了一个接口Cloneable表示这是可被克隆的但是这个接口中没有抽象方法。如果一个接口里面没有抽象方法表示当前的接口是一个标记性接口。现在cloneable表示一旦实现了那么当前类的对象就可以被克隆如果没有实现当前类的对象就不能克隆。这里不懂貌似是关于什么异常处理 public class User implements Cloneable {private int id;private String username;private String password;private String path;private int[] data; ---------------------------------------------------------------------------------------------- //这里还是上面的JavaBean类User。重写Object类中的clone方法以实现深克隆。Overrideprotected Object clone() throws CloneNotSupportedException {//先把被克隆对象中的数组获取出来int[] data this.data;//创建新的数组int[] newData new int[data.length];//拷贝数组中的数据for (int i 0; i data.length; i) {newData[i] data[i];}//调用父类中的方法克隆对象User u(User)super.clone();//因为父类中的克隆方法是浅克隆替换克隆出来对象中的数组地址值u.data newData;return u;}方法2采用第三方工具类。选中jar文件复制-在当前模块下新建一个包liblibrary可以把第三方代码都放在这-粘贴-OK-导入后右键新导入的jar点击Add as Library-OK Objects 工具类提供了一些方法免得我们自己做非空判断。 equals先做非空判断再判断两个对象。 底层方法的底层会判断s1是否为null如果为null直接返回false如果s1不为null那么就利用s1再次调用equals方法 此时s1是student类型所以最终还是会调用student中的equals方法。如果没有重写比较地址值如果重写了就比较属性值。 isNull判断对象是否为null为null则返回true否则返回falsenonNull和isNull相反 BigInteger 用来创建很大的大整数。 构造方法对象一旦创建内部的值不能发生改变 构造方法注意 打印BigInteger对象是其中的数据值不是地址值因为在它的底层重写了父类Object的toString方法使得打印出来的数据是其中的内容第二种方法中如果字符串里面有小数和字母就会报错只能是一个整数第三个方法中输入的整数形式必须和进制形式吻合第四个方法中输入的整数只能在Long的范围内因此和第二种方法相比取值范围更小第四种方法在内部对常用的数字进行了优化提前把-16 ~ 16 先创建好BigInteger的对象如果多次获取不会重新创建新的对象而是直接指向之前创建好的对象。 构造方法小结 成员方法 成员方法注意 这里都是方法必须创建对象后调用方法才能进行运算equals重写了比较的是BigInteger对象当中的数据值不是地址值intValue方法不能超出int范围 BigInteger的底层存储方式了解跳过 BigDecima 用于小数的精确运算 / 用来表达很大的小数。 两个构造方法示例 public Bigdecima(double val)这种方式有可能是不精确的不建议使用public Bigdecima(String val)根据传递的字符串创建小数结果精确 **静态方法valueOf**如果我们传递的是0~10之间的整数包含0包含10那么方法会返回已经创建好的对象不会重新new如果传递的是是小数那么底层返回的是帮我们new出来的Bigdecima 建议 成员方法 成员方法注意 使用divide(BigDecima val)的时候必须保证两个数之间除得尽如10.0和2.08.0和4.0等不然会报错舍入模式是一个类RoundingMode当中有很多静态常量供我们选择它们表示不同的舍入模式。只需要掌握一个舍入模式HALF_UP四舍五入如果与两个相邻数字距离相等则向上舍入远离零的方向如4.5变52.5变3-2.5变-3其他的不会查文档即可。 BigDecima的底层存储方式跳过 遍历输入的字符串转换成字符数组然后存储ASCII码表对应数字。 正则表达式 实际开发正则表达式的用法1、下载插件导入常用的正则表达式2、用AI写、百度找3、查API文档自己写。 自己写的心得按照正确的数据从左往右依次匹配字符 API文档中Pattern类只要掌握字符、字符类、预定义字符类、Greedy 数量词即可。 作用一校验字符串是否满足规则。如校验用户名、校验密码、校验身份证等字符串。 作用二在一段文本中查找想要的内容。 matches方法 预定义字符示例 package com.itheima.a08regexdemo; public class RegexDemo3 {public static void main(String[] args) {// \ 转义字符 改变后面那个字符原本的含义//此时\表示转义字符改变了后面那个双引号原本的含义//把他变成了一个普普通通的双引号而已。System.out.println(\);// \表示转义字符//两个\的理解方式前面的\是一个转义字符改变了后面\原本的含义把他变成一个普普通通的\而已。System.out.println(c:Users\\moon\\IdeaProjects\\basic-code\\myapi\\src\\com\\itheima\\a08regexdemo\\RegexDemo1.java);//.表示任意一个字符System.out.println(你.matches(..)); //falseSystem.out.println(你.matches(.)); //trueSystem.out.println(你a.matches(..));//true// \\d 表示任意的一个数字// \\d只能是任意的一位数字// 简单来记:两个\表示一个\System.out.println(a.matches(\\d)); // falseSystem.out.println(3.matches(\\d)); // trueSystem.out.println(333.matches(\\d)); // false//\\w只能是一位单词字符[a-zA-Z_0-9]System.out.println(z.matches(\\w)); // trueSystem.out.println(2.matches(\\w)); // trueSystem.out.println(21.matches(\\w)); // falseSystem.out.println(你.matches(\\w));//false// \\W非单词字符System.out.println(你.matches(\\W)); // trueSystem.out.println(---------------------------------------------);// 以上正则匹配只能校验单个字符。// 必须是数字 字母 下划线 至少 6位System.out.println(2442fsfsf.matches(\\w{6,}));//trueSystem.out.println(244f.matches(\\w{6,}));//false// 必须是数字和字符 必须是4位System.out.println(23dF.matches([a-zA-Z0-9]{4}));//trueSystem.out.println(23 F.matches([a-zA-Z0-9]{4}));//falseSystem.out.println(23dF.matches([\\w[^_]]{4}));//trueSystem.out.println(23_F.matches([\\w[^_]]{4}));//false} }正则表达式练习 //邮箱号码//3232323qq.com zhangsanitcast.cnn dlei0009163.com dlei0009pci.com.cn//思路://在书写邮箱号码正则的时候需要把正确的数据分为三部分//第一部分:的左边 \\w// 任意的字母数字下划线至少出现一次就可以了//第二部分: 只能出现一次//第三部分:// 3.1 .的左边[\\w[^_]]{2,6}// 任意的字母加数字总共出现2-6次(此时不能出现下划线)// 3.2 . \\.为什么是//.// 3.3 大写字母小写字母都可以只能出现2-3次[a-zA-Z]{2,3}// 我们可以把3.2和3.3看成一组这一组可以出现1次或者两次String regex3 \\w[\\w[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2};System.out.println(3232323qq.com.matches(regex3));System.out.println(zhangsanitcast.cnn.matches(regex3));System.out.println(dlei0009163.com.matches(regex3));System.out.println(dlei0009pci.com.cn.matches(regex3));} }忽略大小写 //忽略大小写的书写方式 //在匹配的时候忽略abc的大小写 String regex4 a((?i)b)c; System.out.println(------------------------------); System.out.println(abc.matches(regex4));//true System.out.println(ABC.matches(regex4));//false System.out.println(aBc.matches(regex4));//true正则表达式符号总结眼熟即可 包装类 基本数据类型所对应的引用数据类型。如int-Integer。通俗来说用对象把基本数据包起来。 内存图 应用场景** 方法中需要接受一个对象类型的时候如method(Object obj)这时候基本数据类型就接收不了集合只能存储对象类型的数据 八大数据类型对应的包装类 两个特殊 获取Integer对象的方式了解 JDK5后对此进行了优化。JDK5前需要自己构造或者调用静态方法 采用构造方法创建对象 Integer i new Integer(1); 采用静态方法创建对象 Integer i Integer.valueOf(123); 获取Integer对象两种方式的区别掌握 对于valueOf静态方法查看源码可以发现底层帮助我们将-128~127byte类型的取值范围对应的对象事先创建好并存储在了数组当中因此用号比较地址值需要注意。 应用背景 因为在实际开发中-128~127之间的数据用的比较多。 如果每次使用都是new对象那么太浪费内存了 所以提前把这个范围之内的每一个数据都创建好对象 如果要用到了不会创建新的而是返回已经创建好的对象。 Integer i6 Integer.valueOf(127);Integer i7 Integer.valueOf(127);System.out.println(i6 i7);//trueInteger i8 Integer.valueOf(128);Integer i9 Integer.valueOf(128);System.out.println(i8 i9);//falseJDK5以后包装类的新特性 自动装箱和自动拆箱JDK5以后 自动装箱把基本数据类型自动变成包装类。举例 //JDK5以前需要手动创建对象 Integer i new Integer(1); //或者手动调用静态方法 Integer i Integer.valueOf(1);//JDK5以后自动装箱。把基本数据类型1直接赋值给包装类对象i在底层就帮我们创建好1的包装类对象 Integer i 1;自动拆箱把包装类自动变成对应基本数据类型。举例 //把包装类对象Integer i赋值给对应的基本数据类型变量int i。底层会帮我们进行拆箱即把包装类对象转换为基本数据类型再参与计算 int a i;结论在JDK5以后int和Integer可以看做是同一个东西因为在内部可以自动转化。 以后不需要new创建对象也不需要调用静态方法直接将基本数据赋值给包装类对象即可。 对于包装类的计算我们可以直接采用变量名参与计算即可。 Integer i1 1; Integer i2 2; Integer i3 i1 i2; print(i3);//3包装类Integer的成员方法 应用1得到某个整数的不同进制下的数据 public static void main(String[] args) {/*public static string tobinarystring(int i)传入int类型的整数得到二进制public static string tooctalstring(int i) 传入int类型的整数得到八进制public static string toHexstring(int i) 传入int类型的整数得到十六进制public static int parseInt(string s) 传入字符串将字符串类型的整数转成int类型的整数*///1.把整数转成二进制十六进制String str1 Integer.toBinaryString(100);System.out.println(str1);//1100100//2.把整数转成八进制String str2 Integer.toOctalString(100);System.out.println(str2);//144//3.把整数转成十六进制String str3 Integer.toHexString(100);System.out.println(str3);//64//4.将字符串类型的整数转成int类型的整数//java是强类型语言:每种数据在java中都有各自的数据类型在计算的时候如果不是同一种数据类型是无法直接计算的。int i Integer.parseInt(123);System.out.println(i);System.out.println(i 1);//124//细节1://在类型转换的时候括号中的参数只能是数字不能是其他否则代码会报错//细节2://8种包装类当中除了Character都有对应的parseXxx的方法进行类型转换String str true;boolean b Boolean.parseBoolean(str);System.out.println(b);} }应用2用parsexxx方法改写键盘录入 public class A05_IntegerDemo5 {public static void main(String[] args) {//键盘录入Scanner sc new Scanner(System.in);System.out.println(请输入一个字符串);/* String str sc.next();System.out.println(str);*///当我们在使用nextnextIntnextDouble在接收数据的时候弊端:遇到空格回车制表符的时候就停止了//键盘录入的是123 123 那么此时只能接收到空格前面的数据,而不是想要的是接收一整行数据//建议:以后我们如果想要键盘录入不管什么类型统一使用nextLine可以接收一整行数据特点:遇到回车才停止//这个接收的line是字符串类型的String line sc.nextLine();System.out.println(line);//将得到的一整行数据再去调用parsexxx静态方法转成自己想要的数据类型//如Double.parseDouble方法将传入的字符串类型的小数转成double类型的小数double v Double.parseDouble(line);System.out.println(v);} }参考学习资料https://www.bilibili.com/video/BV17F411T7Ao/?spm_id_from333.1007.top_right_bar_window_default_collection.content.clickvd_sourceb3f048c1c718e510d2f25b81161f3479
http://www.pierceye.com/news/462224/

相关文章:

  • 用asp做网站的可行性分析哪个网站做美食视频
  • 瓷砖网站模板建设网站虚拟主机
  • 陇西哪里能学做网站百度识图网页版在线使用
  • 如果自己弄网站书签制作 小学生 一等奖
  • 连江网站建设wordpress页面文章列表
  • 国外jquery特效网站网站建设的英语
  • 建立网站最好的模板夜蝶直播app下载安装
  • 重庆学校网站建设wordpress 模版安装
  • 公司要招个做网站的人商标设计网站猪八戒
  • 古建设工程造价管理协会网站小程序引流推广平台
  • 网站域名缴费十年外贸建设企业网站服务
  • 游戏网站外链建设网站开发项目的需求分析
  • 确定网站的主题与风格东营市建设项目工伤保险是哪个网站
  • 如何做一张网站平面效果图装宽带需要多少钱
  • 什么网站能让小孩做算术题厦门住房和城乡建设局网站
  • 网站上线过程建设网站什么费用
  • 企业网站域名在哪申请成都广告公司
  • 手机页面网站模板怎么卖宁波网站建设优化找哪家
  • 深圳网站外包公司注册公司流程和费用找哪家
  • 专业新站整站快速排名公司商业网站和企业网站的区别
  • 网站做等保备案河北建设厅网站登陆怎么找附件
  • 网站前台显示数据库指定分类怎么做php优化大师官方免费
  • 用ps软件做ppt模板下载网站c2c网站开发策划
  • 标志空间 网站tk域名网站多少
  • dedecms网站地图插件永康公司网站开发
  • 比较网站建设有没有学做ppt发网站或论坛
  • 用asp做网站流程做科研找论文的网站
  • 新浪网站怎么做推广广告网站模板下载不了
  • 微网站建设哪家优惠h5小游戏在线玩
  • 娄底高端网站建设网站建设费计入 科目