1. meta标签的作用
打开任意一个网页,打开页面查看器,就可看到html代码。里面都会有meta标签
它存在于<head>标签中
<head>
<meta name="keywords" content=" meta标签的作用是什么">
<meta name="description" content="meta标签的作用是什...">
<meta name="application-name" content="java面试题网">
<meta http-equiv="Cache-Control" content="no-transform">
<meta name="applicable-device" content="pc,mobile">
<meta name="robots" content="noarchive">
<meta name="MobileOptimized" content="width">
</head>
由此可以看出他有三个属性值:name、http-equiv、content。
name属性主要用于描述网页的一些说明,以便于搜索引擎机器人查找、分类。
http-equiv 属性可用于模拟一个 HTTP 响应头。
content则是定义上面两个属性的值。
-
name属性
<meta name=“description” contect="">告诉搜索引擎你的站点的主要内容;
<meta name=“keywords” contect="">向搜索引擎说明你的网页的关键词;
<meta name=“author” contect="你的姓名">告诉搜索引擎你的站点的制作的作者;
<meta name=“application-name” content=""> 规定页面所代表的 Web 应用程序的名称。
等等,查看更多属性可参考meta name属性
-
http-equiv属性
content-type:规定文档的字符编码
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
default-style:规定要使用的预定义的样式表。
<meta http-equiv="default-style" content="the document's preferred stylesheet">
refresh:定义文档自动刷新的时间间隔。
<meta http-equiv="refresh" content="300">
expires:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。(content中必须使用GMT的时间格式。)
<meta http-equiv="expires" content="Fri,12Jan200118:18:18GMT">
pragma:禁止浏览器从本地计算机的缓存中访问页面内容。
<meta http-equiv="pragma"content="no-cache">
Set-Cookie:如果网页过期,那么存盘的cookie将被删除。
<metahttp-equiv="Set-Cookie"content="cookievalue=xxx;expires=Friday,12-Jan-200118:18:18GMT;path=/">
Window-target:强制页面在当前窗口以独立页面显示。
<metahttp-equiv="Window-target"content="_top">
content-Type:设定页面使用的字符集。
<metahttp-equiv="content-Type"content="text/html;charset=gb2312">
content-Language:显示语言的设定
<metahttp-equiv="Content-Language"content="zh-cn"/>
Cache-Control:指定请求和响应遵循的缓存机制.请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age
2. ReenTrantLock可重入锁和synchronized的区别总结
什么是可重入锁:就是可以重新进入的锁。
共同点:
都具有重入性。同一个线程每进入一次,锁的计数器就自增 1。当计数器为0时,才释放锁。
不同点:
ReenTrantLock synchronized 实现 依赖于JDK实现 依赖于JVM实现 性能 优化后性能更好了 功能 锁的细粒度更好更灵活 操作比较方便 特点 可指定公平锁和非公平锁 只能指定非公平锁 唤醒 分组唤醒需要唤醒的线程 要么随机唤醒一个线程要么唤醒全部线程
此外,ReenTrantLock提供了一种能够中断等待锁的线程的机制,通过lock.lockInterruptibly()来实现这个机制。
3.Spring中的自动装配有哪些限制
什么是自动装配: 让应用程序上下文为您找出依赖项的过程
更详细的介绍
切入正题,下面就是自动装配的几点限制:
①如果使用了构造器注入或者setter注入,那么将覆盖自动装箱的依赖关系。
②基本数据类型的值、字符串字面量、类字面量无法使用自动装箱来注入。
③优先考虑使用显示的装配来进行更精确的依赖注入而不是使用自动装配。
4. 什么是可变参数
就是方法的参数个数可以不固定。想传几个传几个。
public int sum(int... numbers) {
...
}
传入的参数在方法内部使用时,就像使用一个数组一样就行。
5. 什么是领域模型(domain model)、贫血模型(anaemic domain model)和充血模型(rich domain model)有什么区别?
领域模型
现实世界中对象的可视化表示,又称为概念模型或分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系
贫血模型
使用的领域对象中只有setter和getter方法(POJO),所有的业务逻辑都不包含在领域对象中而是放在业务逻辑层。有人将我们这里说的贫血模型进一步划分成失血模型(领域对象完全没有业务逻辑)和贫血模型(领域对象有少量的业务逻辑)
充血模型
充血模型将大多数业务逻辑和持久化放在领域对象中,业务逻辑(业务门面)只是完成对业务逻辑的封装、事务和权限等的处理。下面两张图分别展示了贫血模型和充血模型的分层架构。