2017年4月21号课堂笔记

2017年4月21号 星期五 空气质量:良

 

内容:XML,Dom4j解析XML文件,单例

一、XML

老师代码:

<?xml version="1.0" encoding="UTF-8"?>
<!-- XML的注释
xml是什么? 可扩展的标记语言 ! 开闭原则! 设计模式中的6大原则!
什么是标记? 确保数据的唯一性!
int age=5;
syso(age);

01.符合W3C标准
02.可扩展的标记语言
03.无需预编译
04.着重于数据的保存和传输

DTD:就是对xml文件的约束!是一种事先定义好的规范!

CDATA: Character Data 字符数据
语法: <![CDATA[
代码 (不会被解析器 解析! 不会当作标记!)
]]>

Dom(Document Object Model):文档对象模型 ! dom会把xml文件映射成一个 倒挂的树!

常见的4种解析器:
Dom: 基于xml文档树结构的解析,把文件中的内容读取到内存中,占内存,消耗资源!
SAX: 基于事件的解析!不需要将文件中的内容读取到内存中!占用资源少!
JDom: 第一个java特定的模型! 符合2 8原则!本身并不包含解析器!使用SAX2解析器解析!
Dom4j:就是JDom的一个分支!性能优异!功能强大!


特殊符号:
<: &lt;
>: &gt;
": &quot;
': &apos;
&: &amp;


编写xml标签的 注意事项:
01.所有的xml元素必须有闭合标签 /
02.xml标签对大小写敏感
03.xml标签必须正确的嵌套
04.xml同级标签 缩进对齐
001. table键 选中的部分整体 后移
002. shift+table 选中的部分整体 前移
05.元素名称 不能以数字和标点符号开始
06.元素名称 不能包含空格

-->



<学校>
<班级 name="1年级">
<学生 name="小黑1"></学生>
<学生 name="小黑2"></学生>
<学生 name="小黑3"></学生>
</班级>
<班级 name="2年级">
<学生 name="小红1"></学生>
<学生 name="小红2"></学生>
<学生 name="小红3"></学生>
</班级>
<班级 name="3年级">
<学生 name="小紫1"></学生>
<学生 name="小紫2"></学生>
<学生 name="小紫3"></学生>
</班级>
</学校>



二、Dom4j解析XML文件

1、导入Dom4j的jar包

2、老师代码:

package cn.bdqn.xml;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class Dom4jTest {

/**
* Dom4j 解析 xml文件
* 思路:
* 01.创建解析器工厂
* 02.解析器工厂创建具体的解析器
* 03.解析器把xml文件转换成一个dom树
* 04.以dom树的根节点 为起点 操作dom树
*/
static Document document = null;
static Element root = null;

// 获取 dom树 以及 根节点 root
public static void main(String[] args) {
// 创建解析器对象
SAXReader reader = new SAXReader();
try {
document = reader.read("phone.xml");
// 获取根节点
root = document.getRootElement();
} catch (DocumentException e) {
e.printStackTrace();
}

// 新增手机信息 addPhone();
// 删除指定的手机信息 delPhone();
// 修改指定的手机信息
updatePhone();
// 查询所有的手机信息
showPhones();
}

// 查询所有的手机信息
private static void showPhones() {
// 从根节点开始 遍历所有的子节点
Iterator<Element> brands = root.elementIterator();
while (brands.hasNext()) {
Element brand = brands.next();
// 通过 节点获取属性名,以及获取属性值
System.out.println("手机的品牌是:" + brand.attributeValue("name")); // 你给我一个
// 再次遍历brand 获取手机的型号
Iterator<Element> types = brand.elementIterator();
while (types.hasNext()) {
Element type = types.next();
// 获取属性值
System.out.println("型号是:" + type.attributeValue("name"));
// 获取元素内容
if (!type.getText().equals("")) {
System.out.println("元素内容是:" + type.getTextTrim());
}
}
}
}

// 新增手机信息
private static void addPhone() {
/**
* 01.创建需要的元素
* 在内存中创建了
* <Brand></Brand>
*/
Element element = root.addElement("Brand");
/**
* 02.给元素增加属性
* 在内存中增加了
* <Brand name="小米"></Brand>
*/
element.addAttribute("name", "小米");
/**
* 03.在元素下面新增子元素
* 在内存中增加了
* <Brand name="小米">
* <Type></Type>
* </Brand>
*/
Element type = element.addElement("Type");
/**
* 04. 在内存中增加了
* <Brand name="小米">
* <Type name="红米Not7"></Type>
* </Brand>
*/
type.addAttribute("name", "红米Not7");
/**
* 上面的所有操作 都是 内存中的对象!并没有和xml文件进行关联?
*
* 持久化操作:
* 把内存中的内容保存到 xml文件中的过程!
* 增删改操作,都必须是操作xml文件!
*/
savePhone();

}

/**
* 把内存中的内容保存到 xml文件中的过程! 输出流
*/
private static void savePhone() {
// 创建转换器
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = null;
/**
* 创建输出流对象
* XMLWriter(Writer w,OutputFormat f)
* w:说 我们把内存中的内容输出到 哪个xml文件中去
* f:说 到xml文件后的 输出格式
* FileWriter是Writer 孙子类!
*/
try {
writer = new XMLWriter(new FileWriter("phone.xml"), format);
writer.write(document);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 关闭资源
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

// 删除指定的手机信息
public static void delPhone() {
// 通过root获取所有的Brand元素
Iterator<Element> brands = root.elementIterator();
while (brands.hasNext()) {
Element brand = brands.next(); // 获取一个brand
if (brand.attributeValue("name").equals("苹果")) { // 找到了
// 删除
brand.getParent().remove(brand);
}
}
// 保存xml
savePhone();
}

// 修改指定的手机信息
public static void updatePhone() {
// 通过root获取所有的Brand元素
Iterator<Element> brands = root.elementIterator();
while (brands.hasNext()) {
Element brand = brands.next(); // 获取一个brand
if (brand.attributeValue("name").equals("小米")) { // 找到了
Iterator<Element> types = brand.elementIterator();
while (types.hasNext()) {
Element type = types.next();
if (type.attributeValue("name").equals("红米Not7")) {
type.attribute("name").setValue("红米Note7");
}
}
}
}
// 保存xml
savePhone();
}

}

 

三、单例

老师代码:

1、说明(readme):

 

单例设计模式:


概念:
01.是java中最简单的一个设计模式之一!
02.属于创建型模式!提供了一种创建对象的最佳方式!


特点:
01.涉及一个单一的类!该类负责创建自己的对象,同时确保只有一个对象!
02.这个类提供一种访问其对象的方式!可以供外部访问!

注意点:
01.单例类只能有一个实例!
02.单例类必须是自己创建自己的唯一实例!
03.单例类必须给所有的其他对象提供这个实例!

常见的实现方式:
01.懒汉
02.饿汉
03.双重锁

实现的步骤:
01.创建一个类本身 类型的静态属性
02.私有化构造(私有化无参构造,带参构造不用写了)
03.提供对外部访问的接口

2、改成单例模式前(可创建多个对象)

1)学生类

package cn.bdqn.bean;

//学生类
public class Student {

private String name; // 姓名
private int age;// 年龄

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public Student() {
super();
}

public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}

@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}

}

2)测试类

package cn.bdqn.bean;

public class SingletonTest {

public static void main(String[] args) {
// 创建一个学生对象
Student student1 = new Student("学生1", 1);
// 再创建一个学生对象
Student student2 = new Student("学生2", 2);

System.out.println("学生1的姓名是:" + student1.getName());
System.out.println("学生2的姓名是:" + student2.getName());
}

}

3、懒汉式

1)学生类

package cn.bdqn.bean2;

/**
* 懒汉式
*/
public class Student { // 学生类

// 01.创建一个类本身 类型的静态属性
private static Student student = null;

// 02.私有化构造
private Student() {

}

// 03.提供对外部访问的接口
public static synchronized Student getInstance() {
if (student == null) {
student = new Student();
}
return student;
}

public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}

private String name; // 姓名
private int age;// 年龄

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}

}

2)测试类

package cn.bdqn.bean2;

public class SingletonTest {

public static void main(String[] args) {
// 创建一个学生对象
Student student1 = Student.getInstance();
student1.setName("学生1");
// 再创建一个学生对象
Student student2 = Student.getInstance();
// 再创建一个学生对象
Student student3 = Student.getInstance();
student3.setName("学生3");
// 再创建一个学生对象
Student student4 = Student.getInstance();

System.out.println("学生1的姓名是:" + student1.getName());
System.out.println("学生2的姓名是:" + student2.getName());
System.out.println("学生3的姓名是:" + student3.getName());
System.out.println("学生4的姓名是:" + student4.getName());
}
}

 

4、饿汉式

1)学生类

 

package cn.bdqn.bean3;

/**
* 饿汉式
*/
public class Student { // 学生类

// 01.创建一个类本身 类型的静态属性
private static Student student = new Student();

// 02.私有化构造
private Student() {

}

// 03.提供对外部访问的接口
public static synchronized Student getInstance() {
return student;
}

public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}

private String name; // 姓名
private int age;// 年龄

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}

}

2)测试类

 

package cn.bdqn.bean3;

public class SingletonTest {

public static void main(String[] args) {
// 创建一个学生对象
Student student1 = Student.getInstance();
student1.setName("学生1");
// 再创建一个学生对象
Student student2 = Student.getInstance();
// 再创建一个学生对象
Student student3 = Student.getInstance();
student3.setName("学生555");
// 再创建一个学生对象
Student student4 = Student.getInstance();

System.out.println("学生1的姓名是:" + student1.getName());
System.out.println("学生2的姓名是:" + student2.getName());
System.out.println("学生3的姓名是:" + student3.getName());
System.out.println("学生4的姓名是:" + student4.getName());
}
}

 

5、双重锁

1)学生类

 

package cn.bdqn.bean4;

/**
* 双重锁
*/
public class Student { // 学生类

// 01.创建一个类本身 类型的静态属性
private static Student student = null;

// 02.私有化构造
private Student() {

}

// 03.提供对外部访问的接口
public static synchronized Student getInstance() {//第一道锁
if (student == null) {
synchronized (Student.class) {//第二道锁
if (student == null) {
student = new Student();
}
}
}
return student;
}

public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}

private String name; // 姓名
private int age;// 年龄

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}

}

2)测试类

 

package cn.bdqn.bean4;

public class SingletonTest {

public static void main(String[] args) {
// 创建一个学生对象
Student student1 = Student.getInstance();
student1.setName("学生1");
// 再创建一个学生对象
Student student2 = Student.getInstance();
// 再创建一个学生对象
Student student3 = Student.getInstance();
student3.setName("学生666");
// 再创建一个学生对象
Student student4 = Student.getInstance();

System.out.println("学生1的姓名是:" + student1.getName());
System.out.println("学生2的姓名是:" + student2.getName());
System.out.println("学生3的姓名是:" + student3.getName());
System.out.println("学生4的姓名是:" + student4.getName());
}
}

 

四、老师课上提到的几个概念(网上查到的概况)

1、DTD ((Document Type Definition))

文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。

它是标准通用标记语言和[1]  可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。

文档类型定义也可用做保证标准通用标记语言、可扩展标记语言文档格式的合法性,可通过比较文档和文档类型定义文件来检查文档是否符合规范,元素和标签使用是否正确。

文件实例提供应用程序一个数据交换的格式。

使用各类文档类型定义是为了让标准通用标记语言、可扩展标记语言文件能符合规定的数据交换标准,因为这样,不同的公司只需定义好标准文档类型定义,就都能依文档类型定义建立文档实例,并且进行验证,如此就可以轻易交换数据,防止了实例数据定义不同等原因造成的数据交换障碍,满足了网络共享和数据交互。

 

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

 

内部的 DOCTYPE 声明

假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

<!DOCTYPE 根元素 [元素声明]>

带有 DTD 的 XML 文档实例

<?xml version="1.0"?>
<!DOCTYPE note [<!ELEMENT note (to,from,heading,body)><!ELEMENT to      (#PCDATA)><!ELEMENT from    (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body    (#PCDATA)>
]>
<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body>
</note>

以上 DTD 解释如下:

!DOCTYPE note (第二行)定义此文档是 note 类型的文档。

!ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"

!ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型

!ELEMENT from (第五行)定义 frome 元素为 "#PCDATA" 类型

!ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型

!ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型

外部文档声明

假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

<!DOCTYPE 根元素 SYSTEM "文件名">

这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note> 

这是包含 DTD 的 "note.dtd" 文件:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

为什么使用 DTD?

通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。

通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。

而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。

您还可以使用 DTD 来验证您自身的数据。

 

2、cdata(character data)

在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:
<![CDATA[文本内容]]>


CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。


DTD实例:
指定类型为CDATA以后就可以在XML中被用于实例,
例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于"check"的字符数据。
<!ATTLIST payment type CDATA "check">
XML 实例:
XML 解析器通常会解析 XML 文档中所有的文本。
当某个 XML 元素被解析时,其标签之间的文本也会被解析:
<message>此文本也会被解析</message>解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 <name> 元素包含着另外的两个元素(first 和 last):
<name><first>Bill</first><last>Gates</last></name>
而解析器会把它分解为像这样的子元素:
<name>
<first>Bill</first>
<last>Gates</last>
</name>

 

3、W3C(World Wide Web Consortium)

万维网联盟创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。

到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言(标准通用标记语言下的一个应用)、可扩展标记语言(标准通用标记语言下的一个子集)以及帮助残障人士有效获得Web内容的信息无障碍指南(WCAG)等,有效促进了Web技术的互相兼容,对互联网技术的发展和应用起到了基础性和根本性的支撑作用。

W3C为解决 Web 应用中不同平台、技术和开发者带来的不兼容问题,保障 Web 信息的顺利和完整流通,万维网联盟制定了一系列标准并督促 Web 应用开发者和内容提供者遵循这些标准。标准的内容包括使用语言的规范,开发中使用的导则和解释引擎的行为等等。
W3C也制定了包括XML和CSS等的众多影响深远的标准规范。 但是,W3C 制定的 web 标准似乎并非强制而只是推荐标准。因此部分网站仍然不能完全实现这些标准。特别是使用早期所见即所得网页编辑软件设计的网页往往会包含大量非标准代码。

4、JSON

 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。

它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

 

5、Tips:

1)XML里双击后+F2----->查看底层

2)alt+shift+z----->把当前代码用模板包围,再进行后续操作(如try-catch或者for循环等)

demo:

如果 选定 int a=123;
alt+shift+z 选 try catch
就会变为
try
{
int a=123;
}
catch(Exception e)
{
}

 

五、作业

1、soso项目

2、做题

六、老师辛苦了!

 

 

转载于:https://www.cnblogs.com/wsnedved2017/p/6742868.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器物理内存总是九十几,服务器物理内存使用率90以上

服务器物理内存使用率90以上 内容精选换一换开启弹性云服务器的虚拟内存后&#xff0c;会导致硬盘I/O性能下降&#xff0c;因此&#xff0c;平台提供的Windows弹性云服务器默认未配置虚拟内存。如果弹性云服务器内存不足&#xff0c;建议通过“变更规格”操作来扩大内存。如果业…

比较二进制_浮点数比较的精度问题

引言 先举个例子&#xff1a;#include <stdio.h>int main() {float a 0.1;float b 0.2;float c a b;if(c 0.3){printf("c 0.3n");}else{printf("0.1 0.2 ! 0.3n");}return 0; }如果变量a,b换0.75&#xff0c;0.5可以看出运行出c 1.25,说明浮…

open表和closed表_excel工作表合并,多文件数据一键合成

工作中 遇到十几个甚至几十个单独工作excel文件要合并成一个怎么办&#xff0c;难道还按照老办法复制工作表?几个还好说&#xff0c;遇到十几个几十个文件&#xff0c;手速不够快的宝宝心里苦。那么&#xff0c;有没有什么日常偷懒神技&#xff0c;一键合成多个excel文件&…

濡沫江湖一直显示获取服务器地址,濡沫江湖采集点坐标大全

濡沫江湖每个地图都有采集点&#xff0c;那么濡沫江湖采集点具体坐标是多少&#xff1f;下面9k9k小编就为大家整理带来濡沫江湖采集点坐标大全&#xff1a;小渔村(35,4)采集铜矿石、碎铁块小渔村(38&#xff0c;16)采集药草、杂草小渔村(14,35)采集亚麻、杂草小渔村(13,12)采集…

java第五次作业

《Java技术》第五次作业 &#xff08;一&#xff09;学习总结 1.在上周完成的思维导图基础上&#xff0c;补充本周的学习内容&#xff0c;对Java面向对象编程的知识点做一个全面的总结。 2.汽车租赁公司&#xff0c;出租汽车种类有客车、货车和皮卡三种&#xff0c;每辆汽车除了…

mysqld已删除但仍占用空间的_Windows 10删除备份文件方法

Windows具有许多内置备份功能&#xff0c;包括卷影副本&#xff0c;系统还原点和整个系统备份。尽管它们既不是最可靠也不是功能最丰富的备份解决方案&#xff0c;但它们确实提供了一种备份系统和个人数据的不错的方式。Windows内置备份工具的问题之一是它们几乎过于安静和方便…

服务器维修天长,台达精密空调服务天长市供电局

【IT168 厂商动态】项目背景&#xff1a;天长市供电局率属于安徽省供电局&#xff0c;主要负责其辖区内的电力生产与供应。本项目包括三个机房&#xff1a;南、北数据中心机房以及资料中心;台达风冷型精密空调为上述机房的IT设备运行提供7*24小时恒温恒湿高洁净度的运行环境&am…

终端主题_泛终端全渠道新模式中国移动5G泛智能终端渠道生态合作峰会开幕

11月20日&#xff0c;以“泛终端 全渠道 新业态 新模式”为主题的中国移动5G泛智能终端渠道生态合作峰会在广州成功举办。作为2020中国移动全球合作伙伴大会期间举办的重要主题峰会之一&#xff0c;该峰会吸引了超过100家终端、渠道等产业链合作伙伴&#xff0c;会议通过咪咕直…

jq中查找上级_【节能学院】电能管理系统在福州三岐小学项目中的设计及应用...

1项目概述该项目总投资约2.6亿元&#xff0c;建筑规模为4.8万㎡&#xff0c;建设地点在南屿镇葛岐村、晓岐村。项目设有教学楼A区、教学楼B区、教学楼C区、综合楼一区、综合楼二区、室内篮球场、室内游泳馆、足球场等。此电能管理系统为Acrel-3000V7.1系统&#xff0c;在结构设…

[HTML5amp;CSS3]Transform具体解释

Transform字面上就是变形&#xff0c;改变的意思。在CSS3中transform主要包含以下几种&#xff1a;旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。以下我们一起来看看CSS3中transform的旋转rotate、扭曲skew、缩放scale和移动translate详细怎样实现。老样…

比亚迪定薪后多久给offer_比亚迪车主给爱车做四门隔音,没想到两年后肠子都悔青...

许多车主都有过这样的经历&#xff1a;总感觉爱车的静谧性不够如意&#xff0c;为了提升隔音效果改善驾乘质感&#xff0c;往往产生给爱车做一个全车隔音的冲动。只不过冲动归冲动&#xff0c;在着手对车子进行隔音改造工程前&#xff0c;一定要选择靠谱的隔音材料&#xff0c;…

Centos开机自己主动挂载windows中的ntfs磁盘

装了windows和centos双系统后&#xff0c;发如今centos中无法进入windows中的磁盘&#xff0c;更不要说查看磁盘里的文件了&#xff01; 原来默认情况下。centos不支持Widows NTFS硬盘分区读写&#xff0c;要想把NTFS格式的磁盘挂载到CentOS 以下须要安装第三方软件ntfs-3g。…

人工智能方向毕业设计_毕业季|广州美术学院视觉设计学院毕业设计展

视觉艺术设计学院成立于2010年9月&#xff0c;由广州美术学院最传统的装潢系和新兴的数码艺术设计系联合组建而成&#xff0c;2018年11月&#xff0c;艺术与科技专业并入学院。学院现拥有视觉传达设计、数字媒体艺术设计、动画、艺术与科技4个专业。视觉文化设计工作室 视觉文化…

江西住建云实名认证怎么弄_王者荣耀无限时间怎么弄 2020年无限时间账号

腾讯游戏都是有健康系统的&#xff0c;王者荣耀自然也不例外&#xff0c;王者还是第一批出健康系统的游戏&#xff0c;今年健康系统同时有时间限制和充值限制&#xff0c;未成年玩家一天最多只能玩1.5个小时&#xff0c;游戏现在有传闻无限时间账号&#xff0c;那么无限时间怎么…

coherence安装_在Oracle Coherence中分发Spring Bean

coherence安装本文展示了如何通过使用Oracle Coherence中的EntryProcessor和可移植对象格式&#xff08;POF&#xff09;功能来分发Spring Bean。 Coherence通过EntryProcessor API支持无锁编程模型。 此功能通过减少网络访问并在条目上执行隐式的低级锁定来提高系统性能。 此隐…

spring 的aop操作

转载于:https://www.cnblogs.com/hwgok/p/6760663.html

excel 公式 单引号 concat_Excel两个新函数帮你快速搞定批量连接

如果将两个文本连接起来&#xff0c;通常第一反应用连接符号"&"。使用连接符&连接文本字符记得曾经有记者采访刘强东问奶茶妹妹漂不漂亮&#xff0c;他竟然回答看不出来好赖…当时真觉得这家伙身在福中不知福&#xff0c;饱汉不知饿汉饥。果然之后还闹出一些…

练习~虚拟线上银行

数据库操作&#xff0c;网络编程及多线程的综合练习~ 客户端&#xff1a; UI层 1 import javax.swing.*;2 import java.awt.*;3 import java.awt.event.*;4 5 public class ATMUI{6 7 //主方法8 public static void main(String [] args){9 ATMUI ui new ATMUI();…

mybatisplus 操作另一个数据库的数据_MySQL数据库的基础操作

一、基本概念数据库术语数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) - 某种特定类型数据的结构化清单。模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储&#xff0c;包含存储什么样的数据&#xff0…

JEP 277“增强弃用”非常好。 但这是一个更好的选择

维护API很难。 我们正在维护非常复杂的jOOQ API。 但是就语义版本而言&#xff0c;我们遵循相对宽松的规则 。 当您阅读Brian Goetz和其他人关于在JDK中保持向后兼容性的评论时&#xff0c;我只能对他们的工作表示敬意。 显然&#xff0c;我们都希望最终移除Vector &#xff…