zoukankan      html  css  js  c++  java
  • javaSE总结

    1. JDK和JRE的区别:
      答:JDK是Java语言的开发工具包,包含JRE和开发工具包(java,exe等),JRE是Java的语言的运行环境,包含jvm和核心类库,jvm是Java的虚拟机,保证了Java的跨平台向性
    2. JVM跨平台吗?
      jvm是Java的虚拟机,不同的操作系统对应jvm不一样,jvm不具有跨平台性
    3. 保留字
      保留字是还未使用的关键字,可能在Java以后的版本中使用,goto和const
    4. Java语言的特点:
      完全面向对象性,跨平台性,开源,安全可靠,高性能性,多线程,健壮性,
    5. main是关键字吗
      不是的,main是主函数的名字,能够被虚拟机识别,是程序执行的入口
    6. path和classpath的区别:
      path环境变量配置的是可执行文件.exe的执行路径,classpath配置的Java语言编译后声场的字节码文件执行路径
    7. 计算机最基本的存储单位是:字节
      计算机直接识别的进制:二进制
    8. 变量和常量有什么区别:
      变量在运算过程中的值是变化的,可以被多次赋值,常量则是固定的
    9. 变量数据类型的分类:
      变量需要先定义,再赋值,再使用
      基本数据类型:4类8种  byte short int long float double char boolean
      引用数据类型:数组,类,接口
    10. 常量分类:
      自定义常量:自己通过final修饰定义的常量
      字面值常量:包括整数,小数,布尔,字符,字符串
    11. byte的范围:-128 127
      char的范围: 0   65535
    12. long是8个字节,float是4个字节,为什么long比float小
      底层的运算规则不同
    13. ++和--的使用:
      单独使用时,在前后都一样
      参与运算时,在前是先自加或自减,在后是先参与运算,在进行自加或者自减
    14. 逻辑 | 与 短路 || 的区别
      | 不管前面的是真是假都会运算, || 前面为真后面不参与运算,提高了运算的效率
    15. 逻辑 & 与 短路 && 的区别
      & 不管前面是真是都会运算,  && 前面如果为假的话,后面的不参与运算了,提高了运算的效率
    16. while和dowhile,for的区别:
      do while 是先执行后判断
      while和for先判断后执行,for循环结束后,其定义的初始化条件不能再使用
    17. break和continue的区别:
      break是完全跳出循环,continue是跳出本次循环,进行下次循环
    18. 方法重载和方法重写的区别:
      方法重载是在同一个类中出现同名方法,参数列表不同,与返回值无关
      方法重写在子类之间,子类出现和父类声明完全相同的方法时,就成为方法重写,重写要求返回值相同或者有字父类关系
    19. 构造方法,set方法后可以给成员变量赋值,这两种赋值的区别?
      构造方法主要的作用是用来给对象初始化的,赋值只是他的兼职工作,也可以不赋值
    20. 静态代码块和构造代码块的区别:
      静态代码块属于类,给类进行初始化,类一加载就会执行,只执行一次
      构造代码块给对象进行统一初始化,每创建一次就会执行一次
    21. 四种权限修饰符:
      public protectd 默认 private
    22. == 和 equal的区别:
      "=="是比较运算符,既能比较基本数据类型,有可以比较引用数据类型,基本数据类型比较的是数值,引用数据类型比较的是地址值(堆内存开辟的空间)
      equal是方法,重写equal方法比较的是对象的内容,如果没有重写将调用object的equal方法,比较的是地址值
    23. string和stringBuffer和stringBuilder的区别:
      string是一个特殊的引用数据类型,是一个长度不可以改变的字符序列,没有缓冲区,,一旦创建不可以改变,即使重新赋值不是在原来的基础上改变,而是重新创建了一个对象,将引用指向这个新的对象,浪费空间,效率比较低
      stringBuffer和stringbuilder是一个容器,是可变的字符串序列
      stringBuffer,线程安全的,效率比较低,
      stringBuilder的底层是字符数组,线程不安全,效率比较高
    24. 集合体系:
    25. ArrayList与LinkedList的区别:
      ArrayList的底层采用的数据的数据结构,查询慢,增删快
      LinkedListd底层是链表,增删快,查询慢
    26. HashMap和HashTable的的区别:
      *HashMap是线程不安全的,HashTable是线程安全的
      *HashMap可以存储null值和null键,HashMap不可以
      *hashtable的方法是Synchronize的,多线程访问的时候,不需要为自己的方法同步,而hashmap需要自己提供外同步
    27. hashcode和equal的区别:
      *hashcode返回的是一个int数,就是哈希值,而equal是比较两个对象是否相同
      *equal没有重写的话比较的是对象的地址值,equal方法重写需要重写hashcode的方法
      *hashcode返回true,equal不一定返回true,
      *但是equal相同的话,hashcode一定相同  
    28. 数据结构的简单介绍:
      栈:先进后出,压栈,弹栈
      队列:先进先出
      链表:每个元素都指向下一个元素
      数组:一快连续的存储区域
    29. 线程和进程多线程:
      进程是一个正在执行的程序,每个程序至少有一个控制单元,正在运行的程序
      线程是进程中的控制单元,线程控制着进程的执行,是进程的执行路径
      多线程:进程的多条执行路径,每个执行路径就是线程
    30. 多线程并发和多线程并行:
      两个或多个任务发送请求时,CPU只能执行一个,就会交替执行这些任务,CPU会高速切换执行,这就是多线程并发
      多线程并行,两个或者多个任务同时执行,前提是多核CPU
    31. 多线程的特点:具有随机性和和延迟性
    32. 线程的两种实现方式:
      继承Thread类,好处是继承,代码简单,能够直接使用Thread的方法, 缺点就是扩展性差,应为继承了thread类,不可以再继承其他的类了
      实现Runnable接口,好处就是扩展性比较强,缺点:代码比较多,无法直接使用Thread类
    33. 线程的生命周期:
      新建 就绪 运行(可能发生阻塞和等待) 死亡
    34. sleep和wait的区别:
      sleep是让线程睡眠,必须给相应的时间,时间到了自动唤醒,睡眠的时候不放弃CPU的执行权利
      wait是让线程等待,可以传参也可以不传参,传参是让指定时间后等待,需要被唤醒,等待的时间放弃CPU的执行权利
    35. 让线程暂停:
      wait:让线程等待,等待的时候放弃CPU的执行权
      yield:让线程暂停,并执行其他的线程
    36. 什么是IO流:
      用来硬盘和内存之间交互数据的
    37. IO流分类
    38. close()和flush()的区别:
      flush()是用来刷新缓存区的,刷新之后还是可以再次写出的
      close()是用来关闭释放资源的,关闭之后无法写出
     
     
     
    1. 谈谈你对MVC设计模式的理解:
      MVC是一种设计模式,开发代码分为三层,model,view,controller
      Struts2和springmvc严格按照MVC的设计模式设计的,提高代码结构的优化的执行效率
      mvc可以解耦合,请求重定向解耦合
    2. 谈谈你对spring框架的理解:
      IOC:控制反转,spring的IOC创建对象,底层是反射,可以解耦合
      AOP:面向切面编程:底层是动态代理,拦截公共方法,监控接口的安全,监控接口的流量,事务管理,
      优点:抽取公共业务,一次配置,多次使用,
    3. hibernate和mybatis的区别:
      *扩展性:mybatis根据不同的数据库写不同的sql语句,假如一个分页的语句,在mysql中可以用,但是在Oracle中就没有办法用了,hibernate会根据不用的数据库生成不同的语句,所以扩展性好
      *sql效率:hibernate的更新和查询都是对所有字段操作,这方面会有性能的消耗,mybatis是自己写sql语句,所以需要指定查询的字段,还要需要掌握对sql语句的优化,
      *sql和hql的区别:sql是直接对数据库中的表进行操作,hql是对与数据库表有映射关系的实体类进行操作,底层会自动生成sql语句
    4. springmvc与mybatis的区别:
      *springmvc的入口就是一个前端控制器,而Struts2是一个filter过滤器
      *springmvc是基于方法开发的(一个URL对应一个方法),请求参数传递到方法的行参,可以设计为多例或者单例(建议单例),Struts基于类开发的,传递参数通过类的属性,只能设计为单例模式
      *springmvc通过参数解析器是将request请求的内容解析,并给方法形参赋值,将数据和视图封装成modelview对象,最后将modelview中的模型数据通过request域传输到页面,jsp视图默认是jstl
       Struts2是通过值栈存储请求和响应数据,通过ognl存取数据
     
     
  • 相关阅读:
    implementaion bottle session with beaker
    [梦]20050802
    网站更新部署20100912
    Cherokee不值得推荐,你还是可以看一看
    最简单方法远程调试Python多进程子程序
    nginx相关的问题
    本地配置host解析的问题
    base target问题,
    在asp.net中自动合并小图片并使用css sprite显示出来
    html编辑器
  • 原文地址:https://www.cnblogs.com/george93/p/6218622.html
Copyright © 2011-2022 走看看