zoukankan      html  css  js  c++  java
  • java基础

    1. 怎么确保一个集合不被修改

      Collections的unmodiableList(); unmodiableMap(); unmodiableSet();

    2. replace 和 replaceAll的区别

      相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串;

      不同点:replaceAll支持正则表达式,因此会对参数进行解析(两个参数均是),如replaceAll("\d", "*"),而replace则不会,replace("\d","*")就是替换"\d"的字符串,而不会解析为正则。

      另外还有一个不同点:“”在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\" ) ;只打印出一个""。但是“”也是正则表达式中的转义字符,需要用两个代表一个。所以:\\被java转换成\,\又被正则表达式转换成,因此用replaceAll替换“”为"\",就要用replaceAll("\\","\\\\"),而replace则replace("\","\\")。

    如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。

    3.  自动装箱与自动拆箱

      装箱:基本类型转换为包装类型,例如:Integer i = 1,其实是  Integer i = Integer.valueOf(i);

      拆箱:包装类型转换为基本类型,例如:int x = i ,其实是 int x = i.intValue(); 就是包装器类型.xxxValue()。

      补充:基本类型和包装类型用==比较时,包装类型会自动拆箱为基本类型,所以实际就是两个基本类型在比较

    4. final和static的区别

      相同:可以修饰类,成员属性,方法。修饰的方法都不能被重写。都不能修饰构造方法

      不同:static可以修饰代码块,final不行。final可以修饰方法内的局部变量,static不可以

    5. 操作字符串都有哪些类

      String:String类的方法都是返回 new String。对String的任何修改都不影响到原对象,对字符串的修改操作都会生成新的对象所以效率低

      StringBuffer:对字符串的操作方法都加了synchronize,保证线程安全

      StringBuilder:相比StringBuffer效率高,不保证线程安全。如果对某个字符串频繁的修改操作,不推荐使用String去操作

  • 相关阅读:
    我国大部分地区今晚将上演红色月全食美景[2007828]
    n阶汉诺塔问题(Hanoi)
    NBear中使用WhereClip表示in查询的问题
    web性能测试分析理论篇
    Net类库一览 转
    使用ASP.Net Forms模式实现WebService身份验证
    2005数据源的相关数据绑定
    单位分级,涵闸和人员绑定到树
    ajax,js文件中中文显示成乱码的问题
    WinFom应用程序数据操作技巧
  • 原文地址:https://www.cnblogs.com/elian91/p/15342752.html
Copyright © 2011-2022 走看看