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

    一、String  StringBuffer StringBuilder的差别

    1、String内容是不可变的字符,String底层使用了一个不可变的字符数组(final char[])

    注:final修饰一个类,这个类不可以被继承,若是修饰一个变量,这个变量被赋值后不可以改变

    StringBuilder和StringBuffer底层是可变的字符数组

    2、拼接字符串

    1)、String进行拼接 String = "a"+"b";//在此创建了三个对象
    2)、StringBuilder sb = new StringBuilder();sb.append("a").append("b");//仍然还是原来的对象
    所以拼接字符串尽量不要用String进行拼接

     3.StringBuilder是线程不安全的效率高,StringBuffer是线程安全的,效率低

    StringBuffer在append方法上增加了sycronized线程锁

    原文链接:https://www.cnblogs.com/gxlaqj/p/11302881.html

    二、&&和&的区别

    按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;

    逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。

     
    例如: 
    a&b  9&8 
    1001 
    1000

    结果是1000 
    a&&b  9&&8 结果是1

    &对每一个都判断;
    &&只要前面是false就输出false,而不继续判断后面了
    原文链接:https://blog.csdn.net/liquanhai/article/details/4493259

    三.表A有30万条数据,表B有50万条数据,select A left jion B on A.x=b.*x ,结果集有30万条数据,不是1500万。

    四.mybaties框架原理:

    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:

    1. 封装JDBC操作
    2. 利用反射打通Java类与SQL语句之间的相互转换

    MyBatis的主要设计目的就是让我们对执行SQL语句时对输入输出的数据管理更加方便,所以方便地写出SQL和方便地获取SQL的执行结果才是MyBatis的核心竞争力。

    原文链接:https://www.cnblogs.com/luoxn28/p/6417892.html

    五、vue的生命周期

    一共8个阶段
    1、beforeCreate(创建前)

    2、created(创建后)

    3、beforeMount(载入前)

    4、mounted(载入后)

    5、beforeUpdate(更新前)

    6、updated(更新后)

    7、beforeDestroy(销毁前)

    8、destroyed(销毁后)

    vue第一次页面加载会触发哪几个钩子函数?
    beforeCreate、created、beforeMount、mounted

    原文链接:https://blog.csdn.net/brain_bo/article/details/86712177

     六、浅拷贝与深拷贝的区别

    数据类型分为两种基础类型和引用类型:

               1、基础类型:像Number、String、Boolean等这种为基本类型
               2、引用类型:Object和Array

               浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())

               深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝

    DOM 渲染在哪个周期中就已经完成?
    mounted

    原文链接:https://www.cnblogs.com/cnlg123/p/9183436.html

    七、虚拟内存  基于局部性原理 一部分数据只存到硬盘中 调用到的时候再读取 分页就是为了实现这一功能

    八、

    sleep和wait的区别有:

    1,这两个方法来自不同的类分别是Thread和Object
      2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得敏感词线程可以使用同步控制块或者方法。
      3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
        任何地方使用
       synchronized(x){
          x.notify()
         //或者wait()
       }
       4,sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

    九、最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。

    十、floor : 意为地板,指向下取整,返回不大于它的最大整数 ceil : 意为天花板,指向上取整,返回不小于它的最小整数
    round : 意为大约,表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。

    十一、访问修饰符
     
  • 相关阅读:
    ajax与302响应
    读过/在读/想读的英文原著
    从编译DotNetOpenAuth中学到的程序集强签名知识
    百度输入法引起的Mac远程桌面Ctrl+.快捷键不起作用
    MacBook鼠标指针乱窜/不受控制问题的解决方法
    IIS中User-mode caching引起的Cache-Control不为public的问题
    让IIS8支持WCF的最简单方法
    在ASP.NET Web Forms中用System.Web.Optimization取代SquishIt
    苹果官方发布,iPhone 6 & Plus 设计素材
    jQuery 特效:盒子破碎和移动动画效果
  • 原文地址:https://www.cnblogs.com/jianghuxiao/p/11664493.html
Copyright © 2011-2022 走看看