Java部分常见面试题(一)

1:double有多少个字节
int 4个字节、double 8个字节、float 4个字节、short int 4个字节。
2:double的计算是否有误差 如果有 解决方案是?
有 double相减会转换成二进制,因double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差,解决方法就是使用BigDecimal
3:java中的基础数据类型
byte(字节) 8 -128 - 127 0
shot(短整型) 16 -32768 - 32768 0
int(整型) 32 -2147483648-2147483648 0
long(长整型) 64 -9233372036854477808-9233372036854477808 0
float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
char(字符型) 16 ‘ \u0000 - u\ffff ’ ‘\u0000 ’
boolean(布尔型) 1 true/false false
4:jdk1.8版本的特性
Lambda表达式
函数式接口
*方法引用和构造器调用
Stream API
接口中的默认方法和静态方法
新时间日期API
详情可百度搜索
5:Jdbc的工作原理
mysql链接 如在springboot框架中 并且mysql的版本在5.1版本以上 此处的jdbc.mysql.url后需要设置mysql的时区
&serverTimezone=GMT%2B8

jdbc.mysql.driver=com.mysql.jdbc.Driver
jdbc.mysql.url=jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
jdbc.mysql.username="mysql链接账号名"
jdbc.mysql.password=“密码”

原生的链接方式

String url = "jdbc:mysql://localhost:3306/数据库名";
Connection con = DriverManager.getConnection(url,"账号名","密码");链接数据库

6:Ajax请求数据的方式以及区别
GET
最为常见的HTTP请求,普通上网浏览页面就是GET。GET方式的参数请求直接跟在URL后,以问号开始。
URL只支持大约2K的长度,即2048字符数;使用GET进行AJAX请求时候会缓存导致出现的页面不是正确的
POST
向服务器提交数据用到。
需要将form表单中的值先取出转换成字符串,用&符号连接,(同GET传参数一样);不够提交数据量可哒2GB ;
同步以及异步
详情见http://www.w3school.com.cn/jquery/ajax_ajax.asp
7:springMVC框架之间的工作原理
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端
详情可见
https://blog.csdn.net/kkdelta/article/details/7274708
https://www.cnblogs.com/xiaoxi/p/6164383.html
8:springMvc中常用注解
1:@Controller(用于控制层)
2:@RequestMapping(“访问路径”)
3:@Autowired
4:@ResponseBody
5:@Service(“事务层”)
9:json与xml的区别
XML
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据
JSON定义
JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。
JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集
在编码方面。
虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性
解析方面。
在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。
实际上,对于大多数Web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势,许多Ajax应用甚至直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或 HTML片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在Web Serivice应用中,至少就目前来说XML仍有不可动摇的地位
编码的可读性来说,XML有明显的优势,毕竟人类的语言更贴近这样的说明结构。JSON读起来更像一个数据块,读起来就比较费解了。不过,我们读起来费解的语言,恰恰是适合机器阅读,所以通过JSON的索引country.provinces[0].name就能够读取“四川”这个值
更通俗一点就是 json的代码量不会像xml多
就如同
XML形式

<?xml version="1.0" encoding="utf-8" ?>
<country>
  <name>中国</name>
  <province>
    <name>四川</name>
    <citys>
      <city>成都</city>
      <city>绵阳</city>
      <city>南充</city>
    </citys>    
  </province>
</country>

JSON形式

var country =
        {
            name: "中国",
            provinces: [
            { name: "四川", citys: { city: ["成都", "绵阳","南充"]} },
            ]
        }

10:springboot的特点
1:创建独立的Spring应用程序
2:嵌入的Tomcat,无需部署WAR文件
3:简化Maven配置
4:强大的开发包,支持热启动
5:支持关系数据库和非关系数据库
6:支持idea编译工具的快速搭建
7:简化配置文件
11:Mysql varchar 字节长度
最大长度不超过 65535
超出可用text存放
tinytext 256 bytes
text 65,535 bytes ~64kb
mediutext 16,777,215 bytes ~16MB
longtext 4,294,967,295 bytes ~4GB
12:mysql5.1版本的特性
1:故障迁移
2:负载均衡
3:主/从复制
详情请参考
http://ifeve.com/mysql-connector-5-1/
13:数据库除增删改查还可以的操作
1:运行管理
2:数据安全保护
3:数据维护
4:数据备份
5:通信
14:类与对象
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念
类对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板

猜你喜欢

转载自blog.csdn.net/qq_41193701/article/details/90680588