课程介绍:
今日内容:
HTML 概述
软件架构
HTML 语言介绍
HTML 入门案例
HTML 常见标签
文本标签
媒体标签
超链接
表格
表单
框架
实体字符
div/span
H5新特性
一、HTML概述
HTML 用于编写网页,我们日常中通过浏览器网络访问的网页大部分都是使用 HTML 编写。
通过鼠标右键查看网页源代码就能查看到具体的 HTML 代码。
网页内容包含: HTML 代码、 CSS 代码、 JavaScript 代码等内容,俗称 网页三剑客 。
HTML 代码:用于展示数据,即页面内容的呈现;
CSS 代码:使页面内容展示不同的效果,即给页面内容化妆;
JavaScript 代码:使整个页面显示的元素具有动画的效果,并能与用户实现动态交互;
二、软件架构
目前市场上有两种流行的软件架构:
C/S 架构 :Client/Server 客户端 / 服务器。要求用户安装一个客户端程序。
B/S 架构: Browser/Server 浏览器 / 服务器 。通过浏览器与服务器交互,不需要安装其他程序。
(一)C/S架构
C/S 架构 : Client/Server 客户端 / 服务器。要求用户安装一个客户端程序。
原理图 :
主要特点 :
交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。
常见应用:
qq 音乐、王者荣耀、网易云、消消乐
优点:
用户体验好,效果炫
对信息安全的控制较强
应用服务器运行数据负荷较轻,部分计算功能在客户端完成
缺点:
占用硬盘空间
维护麻烦
安装使用依赖其他条件
(二)B/S架构
B/S 架构 : Browser/Server 浏览器 / 服务器 。通过浏览器与服务器交互,不需要安装其他程序
原理图 :
主要特点 :
分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低。
常见应用:
12306 、淘宝、京东 ...
优点 :
维护和升级简单,无缝升级。
不用必须安装程序,操作系统内置了浏览器。大大减少了使用成本
缺点:
动画效果受浏览器限制
对信息安全控制较差。例如:网银就需要使用 U 盾,在浏览器端加密。
应用服务器运行数据负荷较重。大部分计算都在服务器端,增加服务器压力。使用 Ajax 可以改善部分用户体验。
(三)资源分类
资源分类分为 :
静态资源 和 动态资源
1、静态资源
静态资源: 使用静态网页技术开发的资源(Html,CSS,JavaScript)
特点:
所有用户访问,得到的结果是一样的。
举例:
文本,图片,音频,视频,Html,CSS,JavaScript都属于静态资源
如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器种内置了静态资源的解析引擎,可以展示静态资源浏览器本身也是一个应用程序。
2、动态资源
动态资源: 是从资源的服务器里面的数据库拿出来的, 使用动态网页技术发布的资源。
特点:
所有用户访问,得到的结果可能不一样
举例:
jsp/servlet,php,asp …
如果用户请求的是动态资源,那么服务器会根据用户的需求从数据库获取动态数据,再将数据发送给服务器,与静态页面进行数据绑定转换为静态资源,再发送给客户端浏览器。
三、HTML语言介绍
(一)什么是HTML
HTML: 超文本标记语言 (Hyper Text Markup Language) 。
超文本:一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。
简单说不仅可以加载文本还可以加载图片、视频、音频等
标记语言:由标签 组成的语言,标记语言不是编程语言。如: ... 。
(二)HTML作用及版本
作用:
使用标记标签来描述网页,需要运行在浏览器上(推荐使用谷歌、火狐)
版本介绍:
超文本置标语言 ( 第一版 ) ——在 1993 年 6 月作为互联网工程工作小组工作草案发布(并非标准)。
HTML 2.0 —— 1995 年 11 月作为 RFC 1866 发布,在 RFC 2854 于 2000 年 6 月发布之后被宣布已经过时。
HTML 3.2 —— 1996 年 1 月 14 日, W3C 推荐标准
HTML 4.0 —— 1997 年 12 月 18 日, W3C 推荐标准
HTML 4.01 (微小改进)—— 1999 年 12 月 24 日, W3C 推荐标准
HTML 5.0 —— 2008 年发布, 2012 年形成稳定版本。
四、HTML入门案例
(一)HTML基本语法
基本语法包含:标签和属性
文件的后缀:html的后缀名是 .html(推荐使用) 或者 .htm
标签由尖括号包围的关键词,比如
标签分类:① 双边标签:如 ② 单边标签:如
标签的嵌套:要正确嵌套
正确演示:
错误演示:
标签不区分大小写(建议小写)
在开始标签中可以定义属性,属性是以键值对的形式,值需要引号引起来
标签名都是预定义好的,可以直接使用但不可以随便定义
xxx.xml 这样格式的文件,允许自定义标签
html 语言的严谨性要弱一些
(二)创建第一个HTML文件
在本地的任意一个位置创建文本文档,将后缀名改成 html 或者 htm
选择使用记事本或任何文本编辑工具打开文件
编写 HTML标签
右键文件选择使用任意一个浏览器打开,开始你的 HTML之旅吧!
(三)HTML编辑工具
简易编辑工具:记事本、 Notepad++ 、 EditPlus
集成开发工具: HBuilder 、 Webstorm( 收费 ) 、 Sublime 、 VSCode 。
使用 VSCode 开发第一个页面
步骤 :
先创建一个文件当做项目的工作空间 , 然后使用 VSCode引入文件路径
2 . 创建项目名
3. 在项目下创建文件
4. 安装使用默认浏览器插件, 然后右键执行(快捷键 ALT+B )
HTML基本文档结构如下:
1. :声明文档类型
2. html :html文档的根标签
3. head: 头标签,用于指定html一些属性和引入外部资源
4. title :标题标签,设置当前页面的标题
5. meta 标签:指定当前页面的字符编码
6. body :体标签,显示在页面中内容
7. 注释:
五、HTML常见标签
常见标签分类介绍:
文本标签、多媒体标签、列表标签、链接标签、表格标签、表单标签、框架标签、字符实体等。
(一)标题标签
HTML 提供 系列标签,这里的 * 代表 1-6 ,用于修饰标题,其中 定义最大的标题, 定义最小的标题。
标题标签: 标题 1... 标题 6
(二)段落标签
段落标签,使得文本独立成段。
属性解析 :
属性名
属性说明
align
段落对齐方式
left左对齐(默认)
center 居中
right 右对齐
文本格式化标签 : 主要用于修饰文本内容的标签。
1、换行标签
换行标签,是一个 单标记标签 ,每次需要换行就添加一个 标签,换几行加几个。
2、分割线标签
标签在 HTML 页面中创建一条水平的分割线,用于定义内容的主题变化。
属性解析 :
属性名
属性说明
width
定义水平线的长短
单位是像素/百分比
size
定义水平线的粗细
单位是像素/百分比
color
定义水平线的颜色
颜色可以是英文单词:例如red,blue,yellow,pink
颜色也可以是编码:#FF0000
3、加粗标签
> 、 标签可以使字体加粗。
4、斜体标签
、 标签可以使字体倾斜。
5、上标标签
25 可以表示为 2 5
下标标签
H2O 可以表示为 H 2 O
7、字体格式化标签
用于设置字体尺寸、字体颜色等。
属性解析 :
属性名
属性说明
size
定义字体大小, 默认大小3号。
取值范围:1~7
1号最小,7号最大
color
设置字体的颜色
颜色可以是英文单词:例如red,blue,yellow
颜色也可以是编码:#FF0000
8、居中标签
居中标签 : 标签用于将文本居中显示。
(五)HTML多媒体标签
1、HTML图片标签
如果我们想要在 HTML 网页中展示图片,首先需要准备好图片,格式不限, jpg 、 png 、 gif 均可。
标签 :
通常情况我们会将图片 copy 到项目的 img 文件夹下:
属性解析:
属性名
属性说明
src
设置图片的引用路径,可以是相对路径或绝对路径
相对路径
./ 当前目录
../ 上一级目录
../../ 上上一级目录
2. 绝对路径
网络绝对路径:通过url地址加载资源如: https://timgsa.baidu.com/timg?image/xx.png
磁盘绝对路径 需要通过本地访问该页面 如:D:\\images\\1.jpg
width
设置图片的宽度,以像素为单位。
height
设置图片的高度,以像素为单位
title
悬浮文字,当鼠标悬浮到图片上时的提示文字
alt
替代文本,由于某种原因图片无法显示时会使用替代文本替代图片内容。
2、HTML音频标签
标签定义声音,比如音乐或其他音频流。
子标签,资源意思
属性解析 :
属性名
属性说明
src
要播放的音频的 URL,是 source 标签的属性
controls
如果出现该属性,则向用户显示控件,比如播放按钮
autoplay
如果出现该属性,则音频在就绪后马上播放。
loop
如果出现该属性,则每当音频结束时重新开始播放
muted
规定视频输出应该被静音
代码示例:
效果演示:
3、HTML视频标签
标签定义视频,比如电影片段或其他视频流。
子标签
属性 解析 :
属性名
属性说明
src
要播放的视频的 URL
controls
如果出现该属性,则向用户显示控件,比如播放按钮
height
设置视频播放器的高度
width
设置视频播放器的宽度
loop
如果出现该属性,则当媒介文件完成播放后再次开始播放
muted
规定视频的音频输出应该被静音
autoplay
如果出现该属性,则视频在就绪后马上播放。
代码示例:
效果演示:
(六)HTML列表标签
定义无序列表
定义有序列表
列表项 , 是 ul 和 ol 的子标签
特别说明:
ul 和 ol 标签都有 type 属性,可以用来设置列表项前面的项目符号类型。
属性 解析 :
属性名
属性说明
type
定义列表的符号类型。
有序列表:取值:A、a 、I 、i 、1 等( 默认 type="1" )
无序列表:取值:disc 实心圆、square 方块 、circle 空心圆( 默认 type="disc" )
(七)超链接标签
超链接标签是在 html 页面中提供一种页面间跳转的方式。
语法结构:
目标地址 ” target=” 目标 ”> 热点文字或图片
属性解析:
属性名
属性说明
href
访问目标的url地址(必填)
地址取值:
目标路径 或者 锚点
target
定义打开页面的方式 ,常用的两种方式取值为:
取值:
_blank 在新的选项卡中打开
_self 在本页面打开(默认)
(八)HTML表格标签
2.1、表格标签
HTML 中一个表格由 标签及一个或多个 加若干 标签组成。
table: 表格容器标签
tr :行
td: 列(单元格)
语法格式:
常用标签 :
标签名
作用
table
父标签,相当于表格的容器
tr
用来定义行,写在 标签内
td
用来定义列(单元格),写在 标签内
th
表格的列标题 : 加粗,居中
caption
表格的标题
thead
标签定义表格的表头
tbody
标签表格主体(正文)。该标签用于组合 HTML 表格的主体内容
tfoot
标签定义表格的页脚(脚注或表注)。该标签用于组合 HTML 表格中的表注内容。
属性解析:
属性名
属性说明
border
表格边框的宽度(粗细)
width
表格的宽度
height
表格的高度
align
可以用在
标签中,表示表格相对于整个浏览器窗口的居中对齐;也可用在或标签中,设置单元格内容的对齐方式 取值:left 居左、 right 居右、 center 居中
bgcolor
表格的背景颜色(table/tr/td 小的会覆盖大的)
rowspan
合并行(跨行)只能用在 td/th
colspan
合并列(跨列)只能用在 td/th
cellspacing
单元格之间的空白
cellpadding
表格边缘与内容之间的空白
普通案例代码 1 :
DOCTYPE html >
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > 表格标签 title >
head >
< body >
< table border = "1px" align = "center" width = "400px" cellspacing = "0px" cellpadding = "10px" bgcolor = "green" >
< tr align = "center" bgcolor = "orange" >
< td > 姓名 td >
< td > 年龄 td >
< td > 爱好 td >
tr >
< tr align = "center" >
< td bgcolor = "red" > 张三 td >
< td > 23 td >
< td > 唱歌 td >
tr >
< tr align = "center" >
< td > 李四 td >
< td > 24 td >
< td > 跳舞 td >
tr >
< tr align = "center" >
< td > 王五 td >
< td > 25 td >
< td > 爬山 td >
tr >
table >
body >
html >
跨行跨列表格代码 2 :
DOCTYPE html >
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > 跨行跨列的表格标签 title >
head >
< body >
< table border = "1px" width = "500px" >
< caption >< h2 > 学生信息表 h2 > caption >
< tr align = "center" >
< th > 学号 th >
< th > 姓名 th >
< th > 性别 th >
< th > 个人简介 th >
tr >
< tr align = "center" >
< td > 1001 td >
< td > 张三 td >
< td > 男 td >
< td > 我学习最好 td >
tr >
< tr align = "center" >
< td > 1002 td >
< td > 李四 td >
< td > 男 td >
< td rowspan = "2" > 我是一名演员 td >
tr >
< tr align = "center" >
< td > 1003 td >
< td > 王五 td >
< td > 女 td >
tr >
< tr align = "center" >
< td > 1004 td >
< td colspan = "2" > 小六 td >
< td > 小绵阳 td >
tr >
table >
body >
html >
(九)HTML表单标签
表单的作用: HTML 表单的主要作用是接收用户的输入,当用户提交表单时,浏览器将用户在表单中输入的数据打包,并发送给服务器,从而实现用户与 Web 服务器的交互。
表单是控件的容器,一个表单由 form 元素 、表单控件 和表单按钮 三部分组成。
2、案例相关标签
2.1、表单标签
是在页面中创建出一个表单,表单标签在 HTML 中是没有效果展示的,能展示的是表单中的各种标签。如果数据需要提交给服务器,负责收集数据的标签必须放在表单之中。
表单控件和表单按钮
属性解析 :
属性名
属性说明
action
数据提交的路径,指向数据提交的服务器地址
method
数据提交的方式,常用取值:get、post
enctype
规定在发送到服务器之前应该如何对表单数据进行编码
取值三种方式:
application/x-www-form-urlencoded:默认的编码方式。但在用文本的传输和MP3等大型文件的时候,使用这种编码就显得效率低下(也就是说上传文本格式的文件)。
multipart/form-data:指定传输数据为二进制类型,比如图片,mp3,文件,文件上传时使用。
text/plain:纯文本的传输。空格转换为"+"号,但不对特殊字符编码。
2.2、输入域标签
标签用于获取用户输入信息,通过指定 type 值达到搜集不同信息的目的。是我们在 html 中最常用的标签。
语法:
input 属性:
属性名
属性说明
id
为当前组件提供一个唯一的标识
type
定义表单输入项input的组件类型
详见下一个表格type 属性值说明
name
为当前组件提供一个名称
服务器会根据当前的名称获取当前组件提供的数据
value
为当前组件设置值。
value属性的设置策略:
①文本框、密码框这样的表单输入项,可以不强制指定value,因为用户可以自由输入
②单选框、复选框这样的表单输入项,必须强制指定 value ,因为用户无法输入,只能选择,如果不指定value,那么提交上去的只有on
checked
设置单选框 / 复选框 的默认选中状态(全选、反选)
readonly
设置该标签的参数值只读,用户无法手动更改。
但是数据是可以正常提交
disabled
设置该标签不可用(禁用),参数值无法更改,且参数值也无法提交
size
组件的长度
maxlength
设置允许输入的最大的长度
placeholder
输入框的提示信息
input-type 属性值说明 :
属性值
说明
text
文本框(默认),单行的输入字段,用户可在其中输入纯文本。
password
密码框。 内容为非明文
radio
单选框。 必须将其设置为同一组(name的名字必须相同)
checkbox
复选框。 必须将其设置为同一组(name的名字必须相同)
file
附件框。用于文件上传。
hidden
隐藏域。数据可以通过表单发送至服务器,但是浏览器不会显示。
submit
提交按钮。用于控制表单提交数据 。
name属性一般不用设置,设置value属性 将按钮起一个名字
reset
重置按钮。 用于将所有的 表单输入项恢复到 默认状态
image
图形提交按钮,与submit按钮等价
button
普通按钮。 需要和JavaScript事件一起用
2.3、下拉列表标签:
提供一个下拉列表框,让用户进行选择。
语法:
属性解析 :
属性值
说明
name
下拉列表框的名字。
子标签
属性selected选中项、value为当前下拉项的值
multiple
multiple 属性规定输入字段可选择多个值
2.4、文本域标签
写法格式 :
HTML 提供了多行输入的文本控件
属性解析 :
属性值
说明
cols
设置文本域的列数
rows
设置文本域的行数
注意 : 如果需要固定文本域行列的大小 , 需要使用 CSS 样式固定 ;
< style >
textarea {
resize : none ;
}
style >
2.5、按钮标签
标签定义一个按钮。
在 button 元素内部,您可以放置内容,比如文本或图像。这是该元素与使用 input 元素创建的按钮之间的不同之处。
控件 与 相比,提供了更为强大的功能和更丰富的内容。 与 标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或多媒体内容。例如,我们可以在按钮中包括一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。
完整代码:
DOCTYPE html >
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > 表单标签 title >
< style >
textarea {
resize : none;
}
style >
head >
< body >
< form name = "regist" action = "demo02- 标题标签.html" method = "post" >
< p > 账号: < input name = "username" type = "text" maxlength = "4" placeholder = " 请输入账号" > p >
< p > 密码: < input name = "password" type = "password" > p >
< p > 性别:
< input name = "sex" type = "radio" checked = "checked" value = " 男" > 男
< input name = "sex" type = "radio" value = " 女" > 女
p >
< p >
爱好:
< input name = "hobby" type = "checkbox" value = " 唱歌" > 唱歌
< input name = "hobby" type = "checkbox" value = " 跳舞" > 跳舞
< input name = "hobby" type = "checkbox" value = " 打篮球" > 打篮球
< input name = "hobby" type = "checkbox" value = "rap" > rap
p >
< p >
头像: < input name = "pic" type = "file" >
< input type = "hidden" name = "id" value = "" >
p >
< p >
城市:
< select name = "city" id = "city" >
< option value = "0" > == 请选择== option >
< option value = " 北京" > 北京 option >
< option value = " 上海" > 上海 option >
< option value = " 杭州" selected = "selected" > 杭州 option >
select >
p >
< p >
个人简介: < br >
< textarea name = "introduce" id = "introduce" cols = "30" rows = "3" > textarea >
p >
< p >
< input type = "button" name = "btn" value = " 提交" >
< input type = "submit" name = "sub" value = " 注册" >
< input type = "reset" name = "ret" value = " 重置" >
< input type = "image" name = "btnimg" src = "img/btn.jpg" width = "100px" height = "80px" value = "abc" >
p >
< button >< img src = "img/btn.jpg" alt = "" > button >
form >
body >
html >
(十)HTML框架标签
1、框架可以使页面分开布局
2、案例相关标签
2.1、框架标签
写法格式 :
框架标签标签是在本页面内用多窗口将多个页面整合在一起的一个框架集。每一个页面都是独立的,需要用子标签 来确定页面的位置。 通过行和列控制整体布局,用 cols 确定列数,用 rows 确定行数。
特别注意事项 :
标签与 标签不能同时共存
属性解析 :
属性值
说明
cols
对页面进行列切割
一般我们用百分比确定比例,最后一个值用*匹配剩余量
单位:像素/百分比
rows
对页面进行行切割
一般我们用百分比确定比例,最后一个值用*匹配剩余量
单位:像素/百分比
问题: 框架标签是否可以嵌套? 答: 可以
效果演示:
2.2、框架子标签
标签是 标签的子标签 , 用于页面引入 .
属性解析:
属性名
属性说明
src
指定页面的路径
noresize
框架分割后禁止调整
name
该框架的名称
用于和a标签target连用
案例代码:
第一步:创建框架集页面,注意没有 body 标签
第二步:创建子页面 top.html,left.html, 右侧需要显示页面
top.html
left.html:
右侧 :
注意:左侧导航链接时打开的内容位置
给右侧框架起个名字:
修改 left.html 页面中链接标签的 target 属性:
(十一)实体字符
有些字符,像 (<) 这类的,对 HTML 来说是有特殊意义的,所以这些字符是不允许在文本中使用的。要在 HTML 中显示 (<) 这个字符,我们就必须使用实体字符。
实体字符语法: & 实体字符名 ;
实体字符表 :
字符实体语法结构:
& 实体名称 ;
常见的实体字符有:
空格: 小于符号: < 大于符号: > 双引号: " 版权符号: ©
(十二)DIV标签与Span标签
DIV 是一个块级元素 , 默认没有任何样式 , 需要配合 CSS 一起使用才能发挥作用 , 用 div+css 可以制作出精美的网页 ;
扩展 : 介绍一个块级标签 ( 行内标签 ): span
总结 :
DIV 是一个块级元素 , 它包含的元素会自动换行 , 单独占一行 ;
Span 是一个行内元素 , 它包含的元素不会自动换行 , 有多少内容就占多少空间 ;
(十三)HTML5新特性
什么是 HTML5 ?
HTML5 是最新的 HTML 标准。
HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件。
HTML5 拥有新的语义、图形以及多媒体元素。
HTML5 提供的新元素和新的 API 简化了 web 应用程序的搭建。
HTML5 是跨平台的,被设计为在不同类型的硬件( PC 、平板、手机、电视机等等)之上运行。
为了更好地处理今天的互联网应用, HTML5 添加了很多新元素及功能,比如 : 语义标签,多媒体内容,更好的页面结构,更好的形式处理等。
常见语义标签:
:描述了文档的头部区域,用于定义内容的介绍展示区域
:定义元素规定独立的自包含内容。
:述了文档的底部区域,一个页脚通常包含文档的作者,著作权信息,链接的使用条款,联系信息等。
你可能感兴趣的:(Java小白,javascript,前端,开发语言)
2019-05-29 vue-router的两种模式的区别
Kason晨
1、大家都知道vue是一种单页应用,单页应用就是仅在页面初始化的时候加载相应的html/css/js一单页面加载完成,不会因为用户的操作而进行页面的重新加载或者跳转,用javascript动态的变化html的内容优点:良好的交互体验,用户不需要刷新页面,页面显示流畅,良好的前后端工作分离模式,减轻服务器压力,缺点:不利于SEO,初次加载耗时比较多2、hash模式vue-router默认的是hash
系列3:【深入】qiankun动态与按需加载子应用—像电影一样控制出现时机
rabbit_it
qiankun学习 前端框架 前端 阿里云
一、引言:为何需要动态加载在现代前端开发中,性能优化始终是一个关键问题。对于微前端架构而言,管理多个子应用带来了前所未有的灵活性,但也对资源的加载和使用效率提出了更高要求。假设你的微前端项目就像一场电影,而子应用是场景或演员。在不同的情节中,我们只需要特定的场景和演员出现,而不需要所有场景和演员一开始就站在舞台上等待。这时,动态加载和按需加载就成为了关键工具——让需要的内容在正确的时机上场,节省性
ODOO不同版本与平台选择
chouchengyin2080
c# 操作系统 运维
1.10.0vs11.0vs8.0截至2017年底,最新的ODOO发布版为ODOO11.0,但功能上有一定精简(去除财务模块,去除工作流支持),技术上变动较大(代码逐步迁移至Python3,前端框架改写得抽象)。所以如果是从生产使用的角度来讲,ODOO10.0是当前最好选择,因为其更稳定,第三方模块也更多更全面。而如果是ODOO技术爱好从业者,则逐步迁移至ODOO11.0也有必要,因为其底层技术架
数据仓库介绍
阿龙的代码在报错
数据分析 数据仓库 数据库
数据仓库数据仓库的概念数据仓库的主要特征数据仓库的主流开发语言-sql结构化数据sql语句数据仓库的概念数据仓库(英语:DataWarehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(DecisionSupport)。就是数据仓库只分析数据并不产生数据数据仓库的主要特征1、面向主题主题是一个抽象的概念,是
Nuxt Kit 自动导入功能:高效管理你的模块和组合式函数
qcidyu
好用的工具集合 代码效率 前端技巧 Vue开发 组合式函数 模块管理 自动导入 Nuxt Kit
title:NuxtKit自动导入功能:高效管理你的模块和组合式函数date:2024/9/14updated:2024/9/14author:cmdragonexcerpt:通过使用NuxtKit的自动导入功能,您可以更高效地管理和使用公共函数、组合式函数和VueAPI。无论是单个导入、目录导入还是从第三方模块导入,您都可以通过简单的API调用轻松实现。categories:前端开发tags:N
electron多标签页模式更像客户端
diygwcom
electron javascript 前端
Electron多标签页模式是指在Electron框架中实现的类似Web浏览器的多标签页功能。Electron是一个使用Web技术(HTML、CSS和JavaScript)来创建跨平台桌面应用程序的框架。在Electron中实现多标签页模式,通常需要借助一些特定的库或组件,如BrowserView或electron-tabs,或者通过自定义实现。实现方式1.使用BrowserViewBrowser
外卖霸王餐返利外卖会员卡小程序开发
闹小艾
good506070 微信小程序 小程序
外卖霸王餐返利外卖会员卡小程序开发"社交电商赋能下的外卖返利小程序"是专为商家与用户双赢而设计的创新平台。以下是其开发方案的详细步骤:一、需求梳理:首先,我们需要明确小程序的核心功能和特色。包括设定活动类型、返利策略,以及用户体验友好的界面设计。二、技术决策:技术选型是关键。我们采用小程序的开发框架,利用JavaScript作为前端开发语言,并结合微信提供的API进行后端接口调用与数据处理。三、账
Axure设计之全屏与退出全屏交互实现
招风的黑耳
Axure axure 交互
在AxureRP中,设计全屏与退出全屏的交互功能可以极大地提升用户体验,尤其是在展示产品原型或进行演示时。本文将详细介绍如何在AxureRP中通过结合JavaScript代码实现全屏与退出全屏的交互效果。Axure原型设计web端交互元件库:https://1zvcwx.axshare.com一、设计思路全屏与退出全屏的交互设计主要依赖于JavaScript代码来控制浏览器的全屏模式。在Axure
终于搞懂TS中的泛型啦! | typescript 入门指南 04
程序员王天
TypeScript实践指南 前端 javascript typescript
大家好,我是王天~今天分享的是《ts入门指南》系列中第四篇,主要讲解ts中的泛型应用泛型在ts中是比较重要的概念,我花挺长时间才搞明白,整理输出这篇文章,希望能帮助到大家~《ts入门指南》系列,点击下方蓝色字体即可访问TsvsJs谁适合前端开发?|TypeScript入门指南01详解tsconfig.json配置文件|TypeScript入门指南02必学!TypeScript语法类型基础|Type
前端HTML+CSS+JS的入门学习
俊昭喜喜里
前端 html css
一.HTMLHTML(HyperTextMarkupLanguage)即超文本标记语言,是用于创建网页和网页应用程序的标准标记语言。它不是一种编程语言,而是一种标记语言,通过一系列的元素(elements)来告诉浏览器如何显示网页上的内容,如文本、图片、链接、表格、列表等。HTML文档由一系列的标签(tags)组成,这些标签告诉浏览器如何显示内容。标签通常成对出现,例如和,其中是开始标签,表示一个
【免费】springboot项目申报管理系统|毕业设计|Javaweb项目
计算机学姐来啦
springboot ssm java spring boot 课程设计 后端 毕设 毕业设计 java-ee
收藏点赞不迷路关注作者有好处编号:springboot375springboot项目申报管理系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis工具:IDEA/Ecilpse、Navicat、Maven1.万字文档展示(部分)2.系统图片展示第5章系统详细设计5.1管理员功能模块的实现5.1.1项目列表如图5.1显示的就是项目列表页面,此页面提供给管理员的
《C++语言的设计和演化》读书感悟(一)
依晴无旧
C\C++ java 开发语言
写了一百多篇技术文章了,我突然想写一下和技术文搭一点关系的语言发展设计的文章,《C++语言的设计和演化》是我无聊翻自己库存电子书找到了,因为当年看这本书是C++之父写的,所以就保存下来,但是当时主要学习C++,这本书更多是C++之父从本身出发,对C++设计和演化的观点和感想,所以当时就被我扔去吃灰了。现在重拾起来,读起来别有风味。开发语言,虽然很多,但是万变不离其宗,学进去了,无非就是数据类型、控
全面指南:用户行为从前端数据采集到实时处理的最佳实践
数字沉思
营销 流量运营 系统架构 前端 内容运营 大数据
引言在当今的数据驱动世界,实时数据采集和处理已经成为企业做出及时决策的重要手段。本文将详细介绍如何通过前端JavaScript代码采集用户行为数据、利用API和Kafka进行数据传输、通过Flink实时处理数据的完整流程。无论你是想提升产品体验还是做用户行为分析,这篇文章都将为你提供全面的解决方案。设计一个通用的ClickHouse表来存储用户事件时,需要考虑多种因素,包括事件类型、时间戳、用户信
EcmaScript和JavaScript的区别
每天吃八顿
前端 ecmascript
ECMAScript和JavaScript是经常被混淆的两个术语,但实际上它们之间存在一些区别:ECMAScript:ECMAScript(通常缩写为ES,并且有版本号如ES5,ES6和ES7等)是由ECMA国际(EuropeanComputerManufacturersAssociation)制定的一种脚本语言的规范。这个规范定义了语法、命令、数据类型等基本元素。ECMAScript是一种规范,
javascript添加p元素,html添加文字,appendChild
游勇一
javascript html添加p appendChild
javascript添加p元素,html添加文字,appendChild。网页添加p元素效果截图。个人签名:游志勇,预制板,南托岭预制场。文字展示#wordsadd{font-size:70px;word-break:break-all;}#wordsaddp{margin:002px0;padding:002px0;line-height:93%;}.btn_width{width:90px;}
CesiumJS+SuperMap3D.js混用实现可视域分析 S3M图层加载 裁剪区域绘制
SteveJi666
WebGL cesium EarthSDK SuperMap 3d javascript 前端 arcgis
版本简介:cesium:1.99;Supermap3D:SuperMapiClientJavaScript11i(2023);官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务示例参考:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#analysissupport.supermap
前端使用react-intl-universal进行国际化
Stephy_Yy
# 调研 reactjs javascript css
一、国际化/i18n目前国际化,就是开发者写对象,一个key关联若干语种的翻译。相比于浏览器自带的翻译功能,语义更加准确。“国际化”的简称:i18n(其来源是英文单词internationalization的首末字符i和n,18为中间的字符数)二、react项目国际化react-intl是业界最受欢迎的软件包之一:React-intl是雅虎的语言国际化开源项目FormatJS的一部分,通过其提供的
html打开本地excel文件夹,html使用excel表格数据库-html读取本地excel文件并展示
睿理
html表格如何导入到excel中在vs里面用添加数据源就可以啊,再使用数据控件,就可以操作.添加数据源可以用odbc数据源,两种方式1,是在控制面板的管理工具里在ODBC里先设置好.2,是使用连接字符串.用vs的添加数据源向导做.html中有没有类似excel表格,可以填数的表格控件?首先html不能读取本地excel文件其次就算是javascript也是不允许的这是为了安全考虑如果前端脚本可以
如何在 Python 中声明一个静态属性?
潮易
python 开发语言
在Python中,静态属性的定义和使用方式与JavaScript中的类似,主要是通过`@staticmethod`装饰器来实现。静态属性不需要实例化对象就可以访问,它们属于类本身。###如何声明一个静态属性:1.首先,需要在属性名前添加`@staticmethod`装饰器。2.接下来,定义一个普通方法,该方法的第一个参数通常为`cls`(用于表示类的引用)。###代码示例:```pythoncla
数据格式:什么是JSON和XML
isNotNullX
json xml
JSON和XML都是数据交换的一种格式,用于在不同的系统和应用程序之间传输和存储数据。本文将解释JSON和XML的基础内容,并探讨两者的不同。一·什么是JSON?1.JSON(JavaScriptObjectNotation)即JavaScript对象标记法:-JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。-JSON基于JavaScript的一个子集,但JSON是
Java在Controller生成Excel供前端直接下载
pengjunlee
SpringBoot重点详解 导出文件 POI excel Controller
在许多企业办公系统中,经常会有用户要求,需要对数据进行统计并且可以直接下载Excel文件,这样子的话,既然客户提出了要求,我们就应该去满足吖,毕竟客户是上帝嘛,那么我们如何去实现呢?且看我为你一一道来。POI简介JakartaPOI是一套用于访问微软格式文档的JavaAPI。JakartaPOI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,在各种组件中目前
解决前端导出excel文件,打开为乱码
荔枝,你让我拿什么荔枝!
vue 前端 elementui vue.js
前端开发中,导入和导出文件是比较常见的业务场景,常见的情况是:后端返回一个二进制的流文件,前端将其转化为excel文件即可。但是往往会出现转化后的excel文件内容位乱码的情况,本文中提供了两个解决方案:方案一:用户自定义上传方法添加附件添加附件代码解读:上述代码采用了element-ui的el-upload文件上传的组件。改组件有两种文件上传的方式:1.组件自带的上传方法,只需要给其设置acti
HighCharts图表自动化简介
知识的宝藏
Selenium高级篇 Selenium图表自动化测试 highcharts图表自动化 Selenium图表自动化 图表自动化测试 highcharts Selenium
什么是分析数据?在任何应用程序中捕获并以图形或图表形式显示的分析数据是任何产品或系统的关键部分,因为它提供了对实时数据的洞察。验证此类分析数据非常重要,因为不准确的数据可能会在报告中产生问题,并可能影响应用程序/系统的其他相关领域。什么是HighChart?Highcharts是一个用纯JavaScript编写的j基于SVG成图技术的图表库,提供了一种简单的方法来向您的网站或Web应用程序添加交互
CesiumJS+SuperMap3D.js混用实现通视分析
SteveJi666
WebGL cesium EarthSDK SuperMap 3d javascript 前端 arcgis
版本简介:cesium:1.99;Supermap3D:SuperMapiClientJavaScript11i(2023);官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务示例参考:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#analysissupport.supermap
2022年技术胖私藏工具分享 300+编程实用工具
wudongyu
2022年技术胖私藏工具分享300+编程实用工具Javascript工具Underscore.js一套完善的函数式编程的接口,更方便地在JavaScript中实现函数式编程https://underscorejs.org/fastclick用于消除物理点击和click移动浏览器上事件触发之间的300毫秒延迟https://github.com/ftlabs/fastclickLodash一致性、模
java ajax_Java Ajax入门
孤独患喆
java ajax
接下来整理一下Ajax相关的内容,AJAX(asynchronousjsandxml),即异步的JavaScript和xml,它的主要作用就是让页面不必等待服务器返回整个页面信息,而可以通过异步的方式给服务器发送数据和获取数据,对页面进行局部刷新,是一种提高用户体验的技术。同步和异步同步和异步的主要区别如下;(1)同步:一个响应结束后才能发送下一个请求,页面在请求期间不能做其他事情。(2)异步:不
JavaScript 基础 - 第15天
+码农快讯+
JavaScript学习笔记 javascript 前端 开发语言
文章目录JavaScript基础-第15天深浅拷贝浅拷贝深拷贝通过JSON序列化实现js库lodash实现深拷贝通过递归实现深拷贝异常处理throwtry...catchdebugger处理this改变thiscallapplybindthis指向性能优化防抖(debounce)手写防抖函数节流(throttle)手写节流函数JavaScript基础-第15天深浅拷贝浅拷贝浅拷贝:把对象拷贝给一个
JavaScript 基础 - 第13天
+码农快讯+
JavaScript学习笔记 javascript 开发语言 ecmascript
文章目录JavaScript基础-第13天深入对象创建对象三种方式构造函数new实例化过程实例成员&静态成员实例成员静态成员一切皆对象内置构造函数ObjectArrayStringNumberJavaScript基础-第13天了解面向对象编程的基础概念及构造函数的作用,体会JavaScript一切皆对象的语言特征,掌握常见的对象属性和方法的使用。深入对象内置构造函数综合案例深入对象了解面向对象的基
【Java】如何将二进制转换成MultipartFile
Mxin5
Java java 开发语言
业务场景:前端发送请求到后端进行文件上传,后端接收文件并调用第三方接口进行文件处理,响应格式为二进制,然后我们需要将二进制进行转换为MultipartFile进行文件上传。如果你想要将File转换成MultipartFile,可以参考:【Java】如何将File转换成MultipartFile_javafile转multipartfile_MXin5的博客-CSDN博客1.传递二进制respons
【Java将File完美转为MultipartFile】:亲测有效
阿火~
java
由于multipartFile有很多有用的api,但是有时候我们接收到前台的参数是文件名和文件内容,而不是文件,此时不能使用multipartFile接收,导致处理起来很不方便,比如我用minio上传文件,minio需要multipartFile类型的文件,而我拿到前端传来的文件名和文件内容只能自己通过File类创建文件,所以如果想用multipartFile类型就需要自己转换,然而天不遂人愿,并
redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSource expire/del incr/lpush 数据库分区 redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
SQL性能优化-持续更新中。。。。。。
atongyeye
oracle sql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
生成公钥和私钥
oloz
DSA 安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
UIView 中加入的cocos2d,背景透明
374016526
cocos2d glClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScript jquery css html5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
AngularJS实现分页功能
bijian1013
JavaScript AngularJS 分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
[Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学 unity教程 unity视频 unity资料 unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java 算法 面试 百度 招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
HIVE 窗口及分析函数
daizj
hive 窗口函数 分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHP zip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
基于Java注解的Spring的IoC功能
e200702084
java spring bean IOC Office
java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
Swift语法之 ---- ?和!区别
hongtoushizi
? swift !
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
centos7安装jdk1.7
jisonami
jdk centos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
数据源架构模式之数据映射器
home198979
PHP 架构 数据映射器 datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
在Python中使用MYSQL
pda158
mysql python
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
单例模式
hxl1988_0311
java 单例 设计模式 单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。