zoukankan      html  css  js  c++  java
  • 零散笔记

    1.保留n位小数,并四舍五入
    DecimalFormat df = new DecimalFormat ("#0.0");
    System.out.println(df.format(1.4));
    2.chrome添加扩展程序
    a.chrome://extensions/
    b.打开开发者模式
    c.加载已经解压的程序 选目录
    3.自动拆箱装箱涉及null值报错
    Doubel a = 333D;
    double b = a;
    这段代码,涉及到封装类型和基本类型,所以Double向下转成double,反编译如下
    Double a = 333D;
    double b = a.doubleValue();
    通过阅读源码可知,Double是强转成double的,所以当value是null时,null无法转成基本类型double,会报错。
    public double doubleValue() {
    return (double)value;
    }

    特别的,三目运算符中会隐藏这个错误。
    Double a=Double.valueOf(333);
    Float b=null;
    String c="123";
    a=c.equals("123")?b:a;
    a是Double,b是Float。涉及不同类型,进行封装类型向基本类型转换。
    Double a = Double.valueOf(333D);
    Float b = null;
    String c = "123";
    a = Double.valueOf(c.equals("123") ?b.floatValue() : a.doubleValue());


    所以变量b拆箱成了b.floatValue(),这也就是空指针异常的来源

    4.数据库中sql
    sum(colomn) 如果colomn 中有null ,那么null将忽略. 如果所有的都是null,那么得到的就是null
    例如
    tabel test
    ------------
    one
    +----------+
    null
    100
    ------------
    select sum(one) from test;
    结果:
    sum
    +------------+
    100
    -------------

    5.查看pg里面正在run 的sql:
    select * from pg_stat_activity where (state like '%idle%' or state like '%active%')
    order by query_start;

    6.我修改了a.txt,b.txt,c.txt,怎样使用git add将三个文件一次操作全部加入暂存区:
    git add -u
    将当前已跟踪且已修改文件更新

    7.数据库中的join,除了连接表之外,还有数据过滤的作用。
    a).先理解join:https://blog.csdn.net/qq1332479771/article/details/62104624
    b).对过滤的理解:https://www.oschina.net/question/89964_65912 https://blog.csdn.net/u012861978/article/details/52203818

    8.sql中的or:两者有一个真即可为真,不具备短路功能。oracle除外?
    http://www.w3school.com.cn/sql/sql_and_or.asp
    9.一般的,我们可以在sql中自己造一个异或: (:teacher is null and ...) or (:teacher is not null and ...) 形如这样,就可以通过teacher来对and后面的语句进行异或

    10.在返回集字段中,这些字段要么就要包含在Group By语句的后面,
    --作为分组的依据;要么就要被包含在聚合函数中。

    11.char(n)与varchar(n)都可保存<n的字符串,char字符<n时,后面用空格填满,varchar(n)后面不用空格填满.
    oracle/sqlserver/mysql等数据库的varchar(n),n表示字节数(一个汉字占两个字节)
    postgres的varchar(n),n表示字符数(一个汉字就是一个字符)

    12.配置java环境变量时,java_home要配置jdk的路径,因为javac在jdk中,而在jre中没有。一般的,在jdk1.5之后不需要加classpath。只需要java_home和path即可。

    13.保留n位小数,并四舍五入
    DecimalFormat df = new DecimalFormat ("#0.0");
    System.out.println(df.format(1.4));

    14.pg里面用双冒号 :: 来表示强转,而hibernate中版本高的可以用转义,版本低的必须用cast(a as b) 这个方法来实现类型转换

    15.html中转义字符的意义:https://blog.csdn.net/txwtech/article/details/79955665

    16.js操作select:https://www.cnblogs.com/yw-ah/p/5736177.html

    17.table中元素垂直最高: valign=top 水平靠左: align = left

    18.jquery动态获取选择器: var test=$("input[type='radio'][value='"+v+"']");//直接拼接字符串就可以了

    19.系统对于js文件会做压缩处理,会去除多余空格和换行,所以js代码结束时要写分号

    20.js删除元素:
    尾部:pop()
    首部:shift()
    特定一个:var arr = ['1','2','3'];
    var index = arr.indexOf('2');
    if(index>-1){
    arr.splice(index,1);
    }

    21.js jquery 获取元素(父节点,子节点,兄弟节点),元素筛选:https://www.cnblogs.com/ooo0/p/6278102.html

    22.jQuery动态设置样式(style、css):https://blog.csdn.net/xiaoyuncc/article/details/70854925

    23.让a标签实效,一种是href="javascript:void(0)",另一种是通过pointer-events: none 这个css属性,none是无效,auto可以为有效。
    EV中,例子,jQuery("#img_announcementOrgs_16840").parent().css({"pointer-events":"none"});
    博客:https://blog.csdn.net/tangxiujiang/article/details/75577894

    24. js批量设置元素的style属性值:
    firefox等可以使用 : document.getElementById("id").setAttribute("style","top:20px;left:20px;color:red;");
    IE中则必须使用style.cssText : document.getElementById("id").style.cssText = "top:20px;left:20px;color:red;";

    25.数据库distinct:先做排序,再把上下几列重复的去掉

    26.用table布局时,tr下面必须跟td

    27.sql优化: 使用join的时候,要Join的表 可以先dinstinct一下 ,即选出distinct 相应字段 后再去Join
    join的表,用什么字段,可以join(select 字段 from 某表)别名 通过这样减少join的字段,还可以在字段后面加distinct以减少重复

    28.join,简单理解的话,(nested loop)遍历某表,然后在后面附加上join表中"符合条件的记录"。而随着“条件”的不同,需要注意以下两种情况
    第一种,on后面跟 select * from student on score.student_id = student.id
    这样的,在student表中遍历时,“将符合条件的从score中筛选出来”,即,student表中id 是001的
    ,按照条件,只会从score中选出student_id是001的相关记录。
    而student表中id是002,那么只会从score中选出student_id是002的记录

    第二种,当 select * from student on score.student_id = 001 则在student中的每一条记录都会跟上scroe中student_id是001的记录,即使是null。

    29.on where having和join:https://www.cnblogs.com/clphp/p/6256757.html

    30.pg中,物化试图和普通试图的区别:
    a.普通试图只是几条sql,但是物化试图是会成为真实存在的表
    b.基础表发生了变化,普通试图会自动刷新,而物化试图则需要手动刷新

    31.sql中null/null或者null/常数 都还是null

    32.
    usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
    or: git reset [-q] <tree-ish> [--] <paths>...
    or: git reset --patch [<tree-ish>] [--] [<paths>...]

    -q, --quiet be quiet, only report errors
    --soft reset only HEAD
    --mixed reset HEAD and index
    --hard reset HEAD, index and working tree
    --merge reset HEAD, index and working tree
    --keep reset HEAD but keep local changes
    -p, --patch select hunks interactively
    -N, --intent-to-add record only the fact that removed paths will be added later

    33.git reset head^ --soft 将版本库的代码回退到之前的版本,同时将提交的代码放回index区。
    git reset head^ --mixed 将版本库的代码回退到之前的版本, 将提交的代码放回index区,再放回working tree

    34.  throws和throw的区别(面试题)
     throws
            用在方法声明后面,跟的是异常类名
            可以跟多个异常类名,用逗号隔开
            表示抛出异常,由该方法的调用者来处理
            throws表示出现异常的一种可能性,并不一定会发生这些异常
     
     throw
            用在方法体内,跟的是异常对象名
            只能抛出一个异常对象名
            表示抛出异常,由方法体内的语句处理
            throw则是抛出了异常,执行throw则一定抛出了某种异常

    35.基本数据的封装类最好不要用==来判断是否相等,要通过equals()。

    36.int -> Integer 调用的是Integer的static方法:valueOf();
    Integer -> int 调用的是Integer的方法intValue();

    Integer类型初始化
    Integer a = 3;
    Integer b = new Integer(3);
    Integer c = new Integer("3");
    Integer d = Integer.valueOf(3);

    a == b false;
    a == c false;
    a == d true; (由于a调用的valueOf自动装箱,所以,考究valueOf()的内容,发现当-128<= a <= 127时,指向常量池。而在其他的范围,指向堆);

    b == c false;
    b == d false;

    c == d false;

    实际上,为true的时候有且仅有一种情况.a==d 且 -128<= a <= 127

    当然了,java还有点人性,Integer和int 的 == 是符合人类正常思维的:
    public class test {
    public static void main(String[] args) {
    int aa = 333;
    Integer a = 333;
    Integer b = new Integer(333);
    Integer c = new Integer("333");
    Integer d = Integer.valueOf(333);
    System.out.println(aa == a);
    System.out.println(aa == b);
    System.out.println(aa == c);
    System.out.println(aa == d);
    }
    }
    结果: true
    true
    true
    true
    而,一旦a,b,c,d进行四则运算时候,就会拆箱,变成int,就为true了
    b == (c - c + b) true;

    吐血总结:
    1)包装类就是普通的类,用 == 比较,比较的是地址,所以,相互之间 == 运算都是false。但是!在-128<=a <= 127之间,
    为了某种不可告人的秘密,自动装箱就指向了常量池,所以a==d为true;
    2)涉及到与基础类型 == 时候,就为true
    3)四则运算自动拆箱后变成了基本类型,所以 == 时候,true

    37.注意,Integer、Short、Byte、Character、Long这几个类的valueOf方法的实现是类似的。
         Double、Float的valueOf方法的实现是类似的。(永远不指向常量池)

    另外,boolean值和Boolean 的"==" 符合正常人类思维
    public class Main {
    public static void main(String[] args) {

    Boolean i1 = false;
    Boolean i2 = false;
    Boolean i3 = true;
    Boolean i4 = true;

    System.out.println(i1==i2);
    System.out.println(i3==i4);
    }
    }

    结果:true
    true

    38. &&,||都是短路逻辑运算符, &,|不短路,是位运算符

    39.查询某个字段在哪个表
    select * from information_schema.columns
    where column_name = 'index_field';

    40.java中
    floor:向下取整
    ceil: 向上取整
    round:四舍五入(+0.5 再floor)

    41.git stash: https://blog.csdn.net/andyzhaojianhui/article/details/80586695
    42 模态框居中:https://blog.csdn.net/vop444/article/details/79537300

    43.git切换分支,要严格大小写.例如,本项目,原本有Suite_Oracle, 不小心从其他分支checkout suite_oracle, 那么大写的Suite_Oracle将会消失。如果不慎从suite_oracle push到远程时,远程会建立新的分支,suite_oracle。到时候,在本地拉取代码时,git会迷失自己,不知道该从哪里拉。


    当然了,也有解决方案,就是删除远程分支的小写suite_oracle,让git不再困惑

    44.转义: \" 解析:\ 表示 ,    " 表示 " 看转义要两个两个分开看
    java中,用一些特殊符号作为分隔符,但是呢,现实生活中也会用他们原来的意思,所以转义的意义在于,告诉计算机,这个字符目前不会用作分隔符,请按
    照他原来的样子对待它

    45.eclipse导包:https://blog.csdn.net/czbqoo01/article/details/72803450
    eclipse导入jdk:https://blog.csdn.net/qq_29028175/article/details/54708367

    46. git stash save 'expamle message' 储藏全部文件, save无法储藏指定文件
    git stash push -m 'example message' push, 可以储藏全部文件
    git stash push example/example.txt -m 'example message' push, 可以储藏指定文件
    stash好文:http://www.softwhy.com/article-8628-1.html
    强烈推荐:蚂蚁部落 www.softwhy.com

    47. modal里面的button点击后自动消失,是因为有这个属性: data-dismiss="modal", 去掉就好了

    48. onclick,click,on()的优先关系:onclick>click>on();
    onclick和click绑定的事件,彼此之间遵守事件冒泡规则,从内到外触发;
    on()绑定的事件,总是晚于onclick和click绑定的事件触发;
    由此可以得到,使用on()绑定的事件与onclick和click绑定的事件,判断触发先后顺序时,不能只考虑事件冒泡规则。

    49. html布局https://blog.csdn.net/superman__007/article/details/77951401

    50. java新手项目,前端等:https://www.cnblogs.com/ys-wuhan/p/5832279.html

    51. $(window).height()代表了当前可见区域的大小,
    $(document).height()则代表了整个文档的高度,可视具体情况使用.
    https://www.cnblogs.com/avivaye/p/7908669.html

    52.为nodepad++ 更改快捷键https://jingyan.baidu.com/article/e52e36157026fd40c70c5148.html

    53. jq on() 事件处理https://www.cnblogs.com/lst619247/p/8574080.html
    https://www.cnblogs.com/golddemon/p/7594954.html
    https://blog.csdn.net/xuxu_qkz/article/details/78343352
    历史进程 https://blog.csdn.net/muzidigbig/article/details/81010317

    54.OOD:https://www.codeproject.com/Articles/93369/How-I-explained-OOD-to-my-wife
    https://www.cnblogs.com/bluedream2009/archive/2011/01/25/1945000.html

    55.菜鸟教程上有desigh pattern文章http://www.runoob.com/design-pattern/design-pattern-tutorial.html

    56.merge,如果不是快速合并,会生成新的提交记录。遇到冲突时,需要解决冲突,然后add,commit.
    rebase,不会生成新的提交。遇到冲突,解决,add,不需要提交, 而是rebase --continue.就可以了

    一般而言,如果本地有master ,dev两个分支,
    首先进入master,git pull,拉取远程仓库最新代码
    再进入dev分支,git rebase master.将dev分支处理好
    最后进入master分支,git merge dev 进行快速合并,这样就不会产生无意义的提交

    如果本地有只有一个分支,git pull --rebase.即可。遇到冲突,解决,add,然后rebase --continue就好了。

    如果本地只有一个分支,用stash的方式也可以,工作区间代码不提交(注意,上文中的工作区间修改都需要提交),stash起来,然后,git pull.
    然后运用stash, 遇到冲突(没冲突的自动放到index区间,有冲突的留在工作区间待解决),解决,add, 最后提交

    57.String中加号和concat的区别:
    1).+ 可以连接 null,连接时将null视为一个字符串连接,concat连接中出现null,会造成空指针错误。
    2).+号编译后就是使用了StringBuiler来拼接,所以使用+的语句就会创建一个StringBuilder,多条+语句会创建多个StringBuilder对象,这就是建议
    使用StringBuilder的原因。

    58.反射:https://www.cnblogs.com/chanshuyi/p/head_first_of_reflection.html#%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E4%BE%8B%E5%AD%90

    59. static https://www.cnblogs.com/dolphin0520/p/3799052.html

    60. 类加载顺序https://www.cnblogs.com/leiqiannian/p/7922824.html

    61. git cherry-pick:https://www.jianshu.com/p/c787fa885ffd
    git cherry-pick [commit id]
    单个commit只需要git cherry-pick commiti
    多个commit 只需要git cherry-pick commitid1..commitid100 注意,不包含第一个commitid
    如果想搞成[]区间,使用 git cherry-pick A^..B 相当于[A B]包含A

    62.https://blog.csdn.net/sinat_38259539/article/details/71799078

  • 相关阅读:
    Linux 禁用ipv6
    【搬运】Get Log Output in JSON,通过Log4j2与Logback输出JSON格式日志
    Gnome禁用tracker-miner-apps、tracker-miner-fs、tracker-store
    Sentry错误日志监控你会用了吗?
    django执行源生的mysql语句
    django实现自定义manage命令的扩展
    C++教程详解
    python数据分析教程大全
    将mysql主键id从1开始 变为自增
    django restful framework教程大全
  • 原文地址:https://www.cnblogs.com/heyboom/p/10061080.html
Copyright © 2011-2022 走看看