• JavaSe




    • Java_se易忘点总结

      1、java jdk1.7版本以上都支持变量接收二进制
      以0b或者0B开头代表二进制
      八进制:0开头
      十六进制:0x开头
      2、基本数据类型分类:
      整数型:byte(1字节),short(2),int(4),long(8)
      浮点型:float(4字节),double(8)
      字符型:char(2)
      布尔型:beelean(1)
      3、Float和long定义变量时必须加f/l
      Example:Float f = 23f    Long l = 123l;
           浮点型默认为double
      4、Java变量的命名规则:以字母, _ ,$开头,其它随意(java、关键字和特殊符号除外,中间不能有空格)。
      5、‘0’==48  ‘A’==65  ‘a’==97 理解为数字一样的东西
            任何数据类型都是先转换为10进制,然后转为二进制交付JVM处理。
      6、 Char类型和int类型相互转换
      7、 (char)100        (int)‘a’
      8、  数据类型的转换规则:从大到小:强制转换
             int num = 100;  short num2 = (int)num;
             从小到大:自动转换
      9、  int indexnum = String.valueOf(ch).getBytes("utf-8").length;  一个中文utf-8编码下 长度为3
      10、.equals() ==
      .equals()同一数据类型的比较
       == 基础数据类型比较,值相等都为true
      Javascript中==比较值,===比较值+地址
      11、拆箱/装箱
      封装数据类型和基本数据类型之间的转换
      开发中应用于数据类型和字符串之间的关系
      ValueOf()转换为封装数据类型
      parseInt()转换为基本数据类型
      form表单传递给后台的数据都是字符串类型的
      java的数字进制都是10进制
      12、整数相除一定要用float接收,才可以得到你想要的结果。
      比如:1/3 得到的结果是0
      开发中一般用于计算百分比
      正确的计算方法  float  f  = 1/3(float);
      这里注意:1、必须用float接收
                2、除数和被除数必须有一方要转为float类型
      12、整数相除中分母不能为0,如果在除数和被除数中有一方为浮点型结果必为浮点型,浮点型/0结果为infinity
      -浮点型/0=-infinity(负无穷数)
      5%0.0结果为:NaN  5%0报错分母不能为0
      %:在开发中用于倒计时等
      理解:如果一个秒数%60、永远介于0-60之间
      13、Css|js文件的外部引入格式
      <link type=”text/css” rel=”stylesheet”
      href=”main.css”>

      <script type=”text/javascript” src=”main.js” >
      </script>
      14、str.startwith(x); 排断是否以x开头
           Str.endwith(x);排断是否以x结尾
        应用数据类型的默认值:null
        Equals()方法 :数据类型相同,值相同的情况下才为true
      15、相同的分装数据类型
           在-128-127内都为true   超过范围为false
      因为-128-127的取值范围在缓存里面被存储了
      16、断点调试:
           F8:跳跃断点(从目前断点调到下一个断点)
           F6:逐行执行
           F5L进入方法
      17、数组提供了一个工具类:Arrays
           可以用来进行数组和集合之间的转换
          String arr[] = {"3232","fdfasd","发"};
          List<String> list = Arrays.asList(arr);
           Object   aa[]  = list.toArray();
           for (Object object : aa) {
               System.out.print(object+" ");
              }
      18、算法;java中:冒泡算法,快速算法,递归算法,归并算法
            JS中:寻路算法,背包算法,螺纹算法
      19、集合:
           Set集合:无序,不允许重复,因为他的底层是hashcode实现的(维护),允许存储空值。
           Treeset:利用二叉树(红黑树)算法来维护元素的顺序,其内置了一个排序器,默认排序
           Hashset:在未来开发中,若有过滤和去重等的要求,可以考虑使用hashset
         集合+数组相互转换:
         String arr[] = {"3232","fdfasd","发"};
          List<String> list = Arrays.asList(arr);
          Object   aa[]  = list.toArray();
      20、对象:
            两个对象相同:一hashcode相同,二、equals相等
            每个对象对应都有一个hashcode值,
      21、lam表达式:针对集合才有的(jdk1.8新增内容)

      遍历集合:list.forEach(num->System.out.println(num));
      遍历对象:list.forEach(stu->System.out.println(stu.getname());
      list.removeIf(num->条件);符合条件的会被删掉
      Js中 splice(sindex,nums,替换的值):nums是替换的个数
      Js:   Splice(sindex,nums)sindex:从那里开始nums剪切的个数
      22、Math方法
           取整:Math.round(); 向上取整;
                 Math.floor();向下取整
           以上两种方式都不能保留小数位
        double d = 21.52654d;
      String cc = new DecimalFormat("#.####").format(d);
      “#.##”如果是整数的话会有小数位,
      “0.00”是整数的情况下会有小数位, 其它没有区别
      注意:此方法获取小数位时:采用的四舍五入、
      Js中保留小数位:c.toFixed(2);此处保留两位小数

      Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算:BigDecimal
      BigDecimal b1 = new BigDecimal(1);//构造函数传值
          BigDecimal b2= new BigDecimal(3);
          b1.add(b2);//相加方法
          b1.subtract(b2);//相减方法
          b1.multiply(b2);//相乘方法
          b1.divide(b2,20,BigDecimal.ROUND_HALF_EVEN);//相除方法 20位有效位
      23、面向对象:
            1、全局变量可以不用赋初值
               基础数据类型会有各自的默认值,分装数据类型的默认值为null
            2、静态方法只能掉静态的成员(静态属性+静态方法)
               非静态方法即可调静态成员,也可调非静态成员
            3、静态方法,静态属性等是属于类的东西,不能用this等实例化的对象去调,只能通过类去调(单例设计模式里面他们都是被挂载在类上面的)
               父类被final修饰的方法不能被覆盖,但是可以被调用
            4、重载:方法名相同,参数列表不同,于其它任何无关。
               构造函数一般用来给成员变量赋值,可以重载
            5、jdk1.5之后增加了动态参数
            动态参数:动态参数一般用于同一数据类型,如果数据类型不同 就用Object类型,有多个参数是,动态参数放在最后。
    • 如果编译时的类型和运行时的类型不一致的时候,就出现了所谓的多态。
      public static void get(Object... params) {
              for (Object object : params) {
                  System.out.println(object);}}
              public static void main(String[] args) {
              Donparams.get("柳翰林", 26, 3, 555, 98);
          }
      6、程序的执行顺序,静态代码块>代码块>构造函数>普通代码
      7、访问修饰符:public proceted default private
         Proceted:在存在继承关系时才可访问(同包、不同包均可)。
         Default:只有在同包中可以访问。
      8、重写(覆盖),super只有在存在继承关系的基础上存在的
         子类覆盖父类的方法访问修饰符必须大于等于父类被覆盖的方法
         子类覆盖父类的方法可以被重载
    •    父类被final修饰的方法不能被覆盖,但是可以被调用
    • 9、抽象类:用abstract修饰的类
         抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类
         抽象方法:作用就是强迫子类一定要去覆盖的部分
         抽象方法只有定义,没有自我实现。
         抽象类不能被实例化对象,但是可以定义构造方法
         抽象类是多态的最佳体现,接口是多态的完美体现
         抽象方法必须定义在抽象类和接口中
         Final修饰的方法不能被覆盖
      10、接口
      接口里面的方法都是抽象方法,但是抽象关键字被处理,默认不写
      接口里面允许有静态方法+默认方法(default)修饰的方法       ( jdk1.8新增)
      接口里面的访问修饰符只能用public和default
      接口里面没有构造函数,抽象类里面有
    • 接口可以继承接口,是系统可插拔的保证。
    • 11、内部类:
           .成员内部类
           .静态内部类
           .方法内部类
           .匿名内部类
       12、反射:
                创建对象的一种方式,动态修改jvm中的成员
                 Class cla = Class.forName ("lhl.in.out.MyBuffer" );
                  动态解析Class文件中的构造函数,成员变量,成员方法
        13、泛型:
                不能再静态成员上使用泛型类型
                泛型中的数据类型一定是封装数据类型。
                所谓泛型-就是允许在定义类,接口,方法时使用类型形参,这个类型形参将在声明变量,创建对                                        象,调用方法时动态的指明.
     
        14、枚举类:
             public Enum weekEnum{
               monday,
               friday,
               sunday;
     
                                 }
     
            枚举类:1>是一种特殊的类,它可以定义成员变量,成员方法,可以实现一个或者多个接口
                    由于其不能实例化,所以只能定义自己(私有)的构造器
                    枚举类的属性间一逗号隔开
                    2>不能继承具体类和抽象类,必须通过Valueof实现具体的对象
                    3>自定义的枚举类,其父类是Eunm,而不是Object
                  
                   Enum e = Enum.valueOf(cla, "xxx");
                 
            15、IO:
                    输入流              输出流
    字节流:   FileoutputStream    FileinputStraem
    字符流:   InputStreamReader   OutputStreamWrite[可以设置编码格式]
    缓冲流:   BufferReader        BufferWriter
         File file = new File("e://download");
         File file = new File(file,"a.jpg")
    IO中最为丰富的一个流:RandomAccssFile ran = new RandomAccessFile (new File(""), "" );
              NIO:new io
             新的Io和传统的 Io有相同的目的,都是用来进入输入和输出的,但是新的IO使用了不同的方式来处理输入和输出。新IO采用内存映射文件的方式来处理输入和输出,
             新IO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件,通过这个访问文件比传统的Io要快得多。
    2:java.nio相关的包:
              a:java.nio包:主要包含各种与Buffer相关的类。
              b:java.nio.channels包:主要包含各种与Channel和Selector相关的类。
              c:java.nio.charset:主要包含与字符集相关的类
              d:java.nio.channels.spi:主要包含与Channel相关的服务提供者编程接口。
              e:java.nio.charset.spi:主要包含与字符集相关的服务提供者编程接口。
              
    3:  Channel通道和Buffer缓冲是 Nio中的两个核心对象,Channel是对传统IO的模拟。所有的NIO系统中所有的数据都需要通过通道传输,Channel与传统的InputStream和OutputStream
        最大的区别在于他提供了一个map()方法,通过map方法可以直接将一块数据映射到内存中,如果说传统的 Ios是面向流的处理,而NIO是面向快的处理。
        Buffer可以被理解成一个容器,它的本质是一个数组,发送数据到Channel中的所有对象都必须首先放到Buffer中,而从Channel中读取的数据也必须向放到Buffer中。
           16、异常:编译时异常+运行时异常
    编译时异常:io,sql,反射
     
    运行时异常:
           17:jsoup:文件解析/xml文件解释【重点】
          
           18、json 、Bean、Map相互转换
               1、首先定义一个类,定义私有属性,生成get、set方法。
               2、创建属性类的对象,将值set进去
               3、Map<String, String> map = BeanUtils.describe (person );//Bean转换为map
               4、
    public  static <T>T map2Bean(Map<String, String> map,Class<T>class1 ){
         T bean = null;
           try {
               bean = class1.newInstance();
              BeanUtils. populate(beanmap);
         } catch (InstantiationException|InvocationTargetException|IllegalAccessException e) {
               e.printStackTrace();
         }   return bean ;
    }
                               5、Person pp = map2Beanmap, Person.class);//Map转为Bean
                    System.out.println( pp.getName());
                   [备注:有Date类型的时候需要先注册下]
                   必须导入:commons-beanutils-1.9.2.jar;commons-logging-1.2.jar包
     struts2-json-plugin-2.3.15.1.jar(喜欢用)    是对   json-lib-2.3-jdk15.jar【谷歌】的封装
     
     Bean转json:   String  jsonstring =  JSONUtil.serialize (person );[需要javaee包或者web环境下]
     map转json: String   jsonstring =  JSONUtil.serialize (map )此处的map可以是任何对象/Object
     JSONUtil有个反序列化:
     JSON转map 
    Map<String,String> mm = (Map<String, String>)JSONUtil.deserialize(jsonstring );
     json参与转换的时候必须导入:  
             
           19、StringBuffer、StringBuffer为了弥补String的缺陷而出现的,不会产生垃圾数据
               StringBuffer:线程安全的,消耗内存比较大
               StringBuilder:非线程安全的,消耗内存小【开发中常用】
                       
           20、日期类Date:
             
                             日历类:抽象类【开发中常用】
           
     
        关于日期封装的两个工具jar包:
    joda-time-1.6.2.jar          date4j.jar
    • 21、网络编程:
     
      22、在封装数据库里面一般用Bean get set  但是有特殊情况下:用Map讲数据库查询的值存储起来
    然后再用集合返回。
      23、jstl遍历list/map  list里面包含map的情况
         文件头需要引入:
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
         ${map.key} ===  ${map.value}            
         ${map["key"]}  ======${map["value"]}
     
     <c:forEach items = "${lists}" var = "list">
      <c:forEach items = "${list}" var = "map">
            <!-- ${map["key"]}  ======${map["value"]} 注释 -->
             ${map["key"]}  ======${map["value"]}
        </c:forEach >
        </c:forEach >
     
    24、
  • 相关阅读:
    IE 8无法使用R12的解决办法
    ERP系统里的BOM展开函数
    BOM递归查询小实例
    使用标准Package提交Workflow
    查询WIP离散工单的所有组件
    Oracle EBS 各模块中文名称及英文缩写
    ORACLE EBS CUX用户的创建(转)
    HR人员基本信息、分配信息和地址信息SQL
    在Oracle中计算Onhand Quantity
    来自于Mozilla Networks演示工作室的超酷CSS3/Javascript动画演示
  • 原文地址:https://www.cnblogs.com/lhl-shubiao/p/6685994.html
Copyright © 2020-2023  润新知