• JAVA豆知识


    --java知识点---

    2017/06/08 Java_从指定的目录下拷贝所有指定类型文件到output目录

    2017/04/20

    ===导入的包的源码加入方法===============================

     导入的包的源码加入方法(如mybatis的源码):

    properties->Java Build Path->Libraries->mybatis包-Source attachment ...-edit-下载的源码的根目录层mybatis-3-mybatis-3.4.4-OK

    ===LOG4J===========================

    Log4j:日志输出 。Jar包和配置文件(log4j.properties放入src根目录下,(指定其他路径时,需要配置))

    MyBatistsjar包的logging.LogFactory.class源码,定义了各种LOG的接口,其中包含Log4j,所以配置好Log4j 之后就可以打印LOG了

     properties文件 key=value

    //级别

    logger log;
    //级别由低到高
    log.debug("adf");
    log.info(message);
    log.warn(message);
    log.error(message);

    //大于等于DEBUG级别的都输出

    log4j.rootLogger=DEBUG,Console//整个工程的级别//Console,输出位置是控制台。DEBUG级别的原因:参照jar包的logging.jdbc下的类的源码,比如ConnectionLogger.class的源码里,是用debug()出力的,所以不能高于这个级别,否则不会打印Log。
    log4j.appender.Console=org.apache.log4j.ConsoleAppender//配置此类才会输出到控制台(log4j.rootLogger=DEBUG,A
    log4j.appender.A)
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout//布局
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n//布局自定义

    (%d [%t] %-5p [%c] - %m%n,%开头的有特殊含义,[]空格-等都是原样输出。%d产生时间 %t所处线程名称,%-5p:%p输出的级别,-5表示输出的字符至少占5位,不足用空格补齐,“-”表示补齐的空格在右边,没有“-”的话,空格就在左边。%c输出日志时的类全名+包名 %n换行%m输出时附加的信息)
    log4j.logger.org.apache=INFO//org.apache为包名,为org.apache包下配置为INFO级别

     导入的包的源码加入方法(如mybatis的源码):

    properties->Java Build Path->Libraries->mybatis包-Source attachment ...-edit-下载的源码的根目录层mybatis-3-mybatis-3.4.4-OK

    ===LOG4J==============================

    ---日期格式-------------------------------------------------------

    package spring.test;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Set;
    
    import org.junit.Test;
    
    public class TestJ1 {
        @Test
        public void te1() {
            int[] xArry = new int[4];
            xArry[3] = 1;
            System.out.println(xArry[3] + ":: " + xArry.length);
            ArrayList<Object> sl = new ArrayList<Object>();
            sl.add("hello");
            HashMap x = new HashMap();
            x.put(1, "X");
            Set m = x.entrySet();
            m.getClass();
            System.out.println(m.getClass());
           
        }
        @Test
    public void te2() throws ParseException { Date dd = new Date(); String x = "2015年12月11日"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); dd = sdf.parse(x); System.out.println(dd); System.out.println(sdf.format(dd));
            Date dd2 = new Date();
            System.out.println(sdf.format(dd2)); } }

    console print:

    1:: 4
    class java.util.HashMap$EntrySet
    Fri Dec 11 00:00:00 CST 2015
    2015年12月11日
    2017年04月18日

    ----------------------------------------------------------

    2017/04/12

    浅析Java中的final关键字 http://www.cnblogs.com/dolphin0520/p/3736238.html

    Java内部类详解 http://www.cnblogs.com/dolphin0520/p/3736238.html

    public class BouncingBall {
        public static void main(String[] args) {
            MyClass myClass = new MyClass();
            StringBuffer buffer = new StringBuffer("Hello");
            myClass.changeValue(buffer);
            MyClass mc2 = new MyClass();
            StringBuffer buffer2 = new StringBuffer("Hello");
            mc2.changeValue(buffer2);
            System.out.println(buffer.toString() + ":" + buffer.hashCode());
        }
    }
    
    class MyClass {
        static String x;
        
        // public void changeValue(final StringBuffer buffer) {
        public void changeValue(StringBuffer buffer) {
            buffer.append(" world");
            x += buffer.toString();
            // buffer = new StringBuffer("Hello");
            System.out.println(x);
        }
    }
    nullHello world
    nullHello worldHello world
    Hello world:780173189

    ---Eclipse-------------------------------------------------------------------------------

    20170414

    Eclipse:重写superClass的方法 source-override/Implement Method 

          select method you want to override

    ----------------------------------------------------------------------------------

    1. Set Map HashMap Tree ArrayList LinkedList List collection
    2. iterator

     Collection(I)                                                    Map(I)
                |                                                              |
        ----------------------------                              ---------
        |                    |             |                              |          |
      List(I)          Queue(I) Set(I)               HashMap    SortedMap
        |                    |              |                             |           |
     --------------      |          --------------     HashTable    TreeMap
     |                |      |          |                |
    ArrayList LinkedList HashSet  SortedSet

    0.尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。

    1. 对象只有一种创建方式
      String s = new String();

    2. 所有数值类型都有正负号,没有无符号类型

    3. 对象数组:String s[] 每个引用为null
       基本类型数组: int a[] 每个0

    4. 永远不要释放对象

    5. 每个类都必须存放在包中
      com.mycompany.xxx

    6. 不要引用对引用赋值(除了参数传递),修改一个影响另一个

    7. clone() 定义在Object中的protected方法,其它类要使用它,要重写Clone()并且定义为public. 返回值是Object类型,所以要强制转换下
      编写可克隆类:(1)implements Cloneable  (2)重写clone,调用super.clone() (3)clone声明为public (4)捕获CloneNotSupportedException异常

    8. ArrayList的clone只能做到外面拷贝,内部对象还是同一个的对象

    9. Random rand = new Random()
    rand.newInt(100); //生产0 - 99的随机数

    10. 对象的== 比较的是引用
        对象的equal() 比较的是实际内容相同
        自定义类equal() 比较的是对象的引用,所以要重载

    11. 不能把非布尔值当成布尔值使用(与CC++不同)

    12. >>>移位运算符,高位填0

    13. 字符串与非字符串使用+连接,则必须以字符串开始

    14. 0x 0

    15. char byte short 做算术运算,会转成ini

    16. this(...) 调用构造器, 构造器中只能使用一个,并且放在第一句

    17. finalize()并不一定被调用,可用来检测错误,所以只能手动代替析构函数

    18. ini[] a = new int[10] 尽量使用这种方式, 数组间可以赋值,是复制引用
       a.length()

    19. 在子类中重新方法不会屏蔽基类的同名方法(C++会屏蔽)

    20. 只有非private方法才能被重写

    21.

    [22]---20171207 str.split("\s+")   str..split("[,\s]+")

    “\s“ 可不是什么空格,它就是一个字符串,由  和 s 组成。'' 才是空格。
    这个字符串是一个正则表达式,表示一个空白字符,也就是空格、 、 等字符。
    之所以要写成 \s 是因为 是转义字符,它要把它和它后面的一个字符转义成另外一个特殊的字符,像 ,就不再是 和 0 了,
    而是 它俩一起表示空格这个字符了。那既然 是转义字符,它要和它后面的一个字符一起表示另外一个字符了,那要表示它自己怎么办呢?
    按规定,\ 就表示 这个字符了。第一个 是转义字符,第二个 还是转义字符,只不过它被第一个 转义了
    正则表达式,
    \d表示 0-9 的数字,
    \s表示 空格,回车,换行等空白符,
    \w表示单词字符(数字字母下划线)
    +号表示一个或多个的意思

    [22]---20171207正则表达式 regular expression

    正则表达式,
    \d表示 0-9 的数字,
    \s表示 空格,回车,换行等空白符,
    \w表示单词字符(数字字母下划线)
    +号表示一个或多个的意思
    
    core java volume 1:
    
    
    c
     The character c
     
    unnnn, xnn, n, nn, nnn
     The code unit with the given hex or octal value
     
    	, 
    , 
    , f, a, e
     The control characters tab, newline, return, form feed, alert, and escape
     
    cc
     The control character corresponding to the character c
     
    Character Classes
     
    [C1C2. . .]
     Any of the characters represented by C1, C2, . . . The Ci are characters, character ranges (c1-c2), or character classes
     
    [^. . .]
     Complement of character class
     
    [ . . . && . . .] 
     Intersection of two character classes
     
    Predefined Character Classes
     
    .
     Any character except line terminators (or any character if the DOTALL flag is set)
     
    d
     A digit [0-9]
     
    D
     A nondigit [^0-9]
     
    s
     A whitespace character [ 	
    
    fx0B]
     
    S
     A non-whitespace character
     
    w
     A word character [a-zA-Z0-9_]
     
    W
     A nonword character
     
    p{name}
     A named character class—see Table 12-9
     
    P{name}
     The complement of a named character class
     
    Boundary Matchers
     
    ^ $
     Beginning, end of input (or beginning, end of line in multiline mode)
     
    
     A word boundary
     
    B
     A nonword boundary
     
    Syntax
     Explanation
     
    A
     Beginning of input
     
    z
     End of input
     
    
     End of input except final line terminator
     
    G
     End of previous match
     
    Quantifiers
     
    X?
     Optional X
     
    X*
     X, 0 or more times
     
    X+
     X, 1 or more times
     
    X{n} X{n,} X{n,m}
     X n times, at least n times, between n and m times
     
    Quantifier Suffixes
     
    ?
     Turn default (greedy) match into reluctant match
     
    +
     Turn default (greedy) match into possessive match
     
    Set Operations
     
    XY
     Any string from X, followed by any string from Y
     
    X|Y
     Any string from X or Y
     
    Grouping
     
    (X)
     Capture the string matching X as a group
     
    
    
     The match of the nth group
     
    Escapes
     
    c
     The character c (must not be an alphabetic character)
     
    Q . . . E 
     Quote . . . verbatim
     
    (? . . . ) 
     Special construct—see API notes of Pattern class

    --java知识点---

    浅析Java中的final关键字 http://www.cnblogs.com/dolphin0520/p/3736238.html

    Java内部类详解 http://www.cnblogs.com/dolphin0520/p/3736238.html


    css篇
    1. 选择器  p 代表 段落标签     #p 代表 id="p" 的标签   .p  代表 class="p" 的标签  三者可以嵌套  #nav .li {...}

  • 相关阅读:
    ex01 温度转换1
    12 字典的遍历在 Python2 与 Python3 中区别
    11 序列中有多个最值时会索引出哪个
    10 isalpha() 对于字母的定义
    09 Python3 的深拷贝与浅拷贝
    08 in
    07 len()
    06 “杠零”与空字符
    导航点击字体变色
    清除浮动
  • 原文地址:https://www.cnblogs.com/charles999/p/6692034.html
Copyright © 2020-2023  润新知