当前位置: 首页 > news >正文

自学网站制作教程网站论坛怎么做

自学网站制作教程,网站论坛怎么做,wordpress升级教程,dw做网站菜单栏配置文件 在企业开发过程中#xff0c;我们习惯把一些需要灵活配置的数据放在一些文本文件中#xff0c;而不是在Java代码写死 我们把这种存放程序配置信息的文件#xff0c;统称为配置文件 properties 是一个Map集合#xff08;键值对集合#xff09;#xff0c;但是我…配置文件 在企业开发过程中我们习惯把一些需要灵活配置的数据放在一些文本文件中而不是在Java代码写死 我们把这种存放程序配置信息的文件统称为配置文件 properties  是一个Map集合键值对集合但是我们一般不会当集合使用。 核心作用Properties是用来代表属性文件的通过Properties可以读写属性文件里的内容  使用Properties读取属性文件里的键值对数据  使用Properties把键值对数据写出到属性文件里去  public class Demo1 {public static void main(String[] args)throws IOException {//1. 创建一个配置文件对象Properties properties new Properties();properties.setProperty(name,卷王);properties.setProperty(age,18);properties.store(new FileWriter(E:\\Code191Day\\day10\\a-1.properties),卷王个人介绍);//2. 读取properties.load(new FileReader(E:\\Code191Day\\day10\\a-1.properties));System.out.println(properties.getProperty(name));System.out.println(properties.getProperty(age));SetString set properties.stringPropertyNames();for (String s : set) {System.out.println(s properties.getProperty(s));}} } Properties的作用具体如何使用 可以加载属性文件中的数据到Properties对象中来 void load​(Reader reader) public String getProperty(String key)     根据键获取值  可以存储Properties属性集的键值对数据到属性文件中去 void store​(Writer writer, String comments) public Object setProperty(String key, String value)    设置键值 XML 本质是一种数据的格式可以用来存储复杂的数据结构和数据关系。  XML的特点 1.XML中的“标签名” 称为一个标签或一个元素一般是成对出现的。 2.XML中的标签名可以自己定义可扩展但必须要正确的嵌套。 3.XML中只能有一个根标签。 4.XML中的标签可以有属性。 5.如果一个文件中放置的是XML格式的数据这个文件就是XML文件后缀一般要写成.xml  XML的语法规则 1.XML文件的后缀名为xml文档声明必须是第一行   ?xml version1.0 encodingUTF-8 ? versionXML默认的版本号码、该属性是必须存在的 encoding本XML文件的编码 2.XML中可以定义注释信息!–- 注释内容 --快捷键是Ctrlshift/ 3.XML中书写””、“”等可能会出现冲突导致报错此时可以用如下特殊字符替代。     lt;      小于     gt;      大于    amp;    和号    apos;    单引号    quot;    引号 4.XML中可以写一个叫CDATA的数据区: ![CDATA[   …内容…  ]]里面的内容可以随便写。 XML的作用和应用场景  本质是一种数据格式可以存储复杂的数据结构和数据关系。 应用场景经常用来做为系统的配置文件或者作为一种特殊的数据结构在网络中进行传输。  XML的作用 XML的是一种可扩展的标记语言。 作用1作为软件的配置文件   2用于进行存储数据和传输数据  解析XML文件 Dom4j解析XML-得到Document对象  DOM4J解析XML文件的思想文档对象模型  ?xml version1.0 encodingUTF-8 ? usersuser id1name张无忌/namepasswordminmin/passwordaddress光明顶/addressgender男/gender/useruser id2name敏敏/namepasswordwuji/passwordaddress光明顶/addressgender女/gender/user /users public class Demo2 {public static void main(String[] args) throws DocumentException {ListUser list new ArrayList();//1.使用SAXReader读取XML,封装成DocumentSAXReader saxReader new SAXReader();Document read saxReader.read(E:\\Code191Day\\day10\\b-2.xml);//获取跟节点Element rootElement read.getRootElement();//获取根元素下的子元素ListElement elements rootElement.elements();//遍历集合获取每个元素for (Element element : elements) {String id element.attributeValue(id);String name element.element(name).getText();String password element.element(password).getText();String address element.element(address).getText();String gender element.element(gender).getText();User user new User(Integer.valueOf(id),name,password,address,gender);list.add(user);}list.stream().forEach(System.out::println);} } Element提供的方法  约束文档  门用来限制xml书写格式的文档比如限制标签、属性应该怎么写。  约束文档的分类  1.DTD文档 2.Schema文档  日志技术  程序中的日志通常就是一个文件里面记录的是程序运行过程中的各种信息。  1.可以将系统执行的信息方便的记录到指定的位置控制台、文件中、数据库中。 2.可以随时以开关的形式控制日志的启停无需侵入到源代码中去进行修改。  Logback日志框架  想使用Logback日志框架至少需要在项目中整合如下三个模块  1.slf4j-api日志接口 2.logback-core 3.logback-classic  实现步骤  public class Demo1 {public static final Logger LOGGER LoggerFactory.getLogger(Demo1);public static void main(String[] args) {LOGGER.debug(哈哈哈);LOGGER.error(除法报错);try {LOGGER.warn(除数为0);sum(10, 2);}catch (Exception e){LOGGER.error(除法报错);}}public static int sum(int a,int b){LOGGER.info(输入的参数:a{},b{},a,b);int c a / b;return c;}} 日志级别 多线程  1.单线程在计算机中同一时间只能做一件事 2.多线程在计算机中同一时间可以做多件事  public class Demo1 {public static final Logger logger LoggerFactory.getLogger(Demo1);public static void main(String[] args) {//需求创建两个线程分别用于打印10个A和10个B最后观察下输出顺序new Thread(){Overridepublic void run() {Thread.currentThread().setName(卷王线程);for (int i 0; i 10; i) {logger.info(Thread.currentThread().getName() i);}}}.start();new Thread(){Overridepublic void run() {Thread.currentThread().setName(阿giao线程);for (int i 0; i 10; i) {logger.info( Thread.currentThread().getName() i);}}}.start();} }线程的创建方式 方式一继承Thread类  1.定义一个子类继承线程类java.lang.Thread 2.重写run()方法 创建子类的对象 3.调用子类对象的start()方法启动线程底层会自动去执行run方法  public class Demo1 {public static final Logger logger LoggerFactory.getLogger(Demo1);public static void main(String[] args) {//需求创建两个线程分别用于打印10个A和10个B最后观察下输出顺序new Thread(){Overridepublic void run() {Thread.currentThread().setName(卷王线程);for (int i 0; i 10; i) {logger.info(Thread.currentThread().getName() i);}}}.start();new Thread(){Overridepublic void run() {Thread.currentThread().setName(阿giao线程);for (int i 0; i 10; i) {logger.info( Thread.currentThread().getName() i);}}}.start();} }多线程的创建方式二实现Runnable接口 public class Demo1 {public static final Logger logger LoggerFactory.getLogger(Demo1);public static void main(String[] args) {//需求创建两个线程分别用于打印10个A和10个B最后观察下输出顺序new Thread(() - {for (int i 0; i 10; i) {logger.info(Agiao {}, i);}},Agiao){}.start();new Thread(() - {for (int i 0; i 10; i) {logger.info(展丫鹏 {} , i);}},展丫鹏){}.start();} }多线程的第三种创建方式利用Callable接口、FutureTask类来实现 public class Demo1 {public static final Logger logger LoggerFactory.getLogger(Demo1);public static void main(String[] args) throws ExecutionException, InterruptedException {//需求启动两个子线程分别计算100之内的奇数的和和偶数的和然后在主线程中再做个汇总得到总和//2.创建任务类对象OddCallable oddCallable new OddCallable();EvenCallable evenCallable new EvenCallable();//3.创建未来任务的对象,可以获取线程执行的结果FutureTaskInteger integerFutureTask1 new FutureTask(oddCallable);FutureTaskInteger integerFutureTask2 new FutureTask(evenCallable);//4.创建线程类Thread thread1 new Thread(integerFutureTask1,计算奇数);Thread thread2 new Thread(integerFutureTask2,计算偶数);//5.启动线程thread1.start();thread2.start();//6.从FutureTask对象中获取线程执行结果//假设结果还没有算出来,线程会在此等待Integer oddSum integerFutureTask1.get();Integer evenSum integerFutureTask2.get();logger.info({},oddSum evenSum);}}class OddCallable implements CallableInteger{Overridepublic Integer call() throws Exception {int sum 0;for (int i 1; i 100; i2) {sum i;}return sum;} }class EvenCallable implements CallableInteger{Overridepublic Integer call() throws Exception {int sum 0;for (int i 0; i 100; i2) {sum i;}return sum;} } 请对对比说一下三种线程的创建方式和不同点
http://www.tj-hxxt.cn/news/134021.html

相关文章:

  • 汕尾建设局安检站网站网站查询工具seo
  • 网站建设的策划方案wordpress管理插件
  • wordpress audio主题wordpress安装双seo插件
  • 杭州做网站电话郑州网站建设鹏之信
  • 做网站更赚钱吗泾川县门户网站留言
  • 做外贸 用国内空间做网站太原网站制作公司飞向未来
  • 网站系统里不能打印手机上开发app
  • wordpress建站吗wordpress年会员
  • 关于动漫的网站建设怎么网站做二维码
  • 贵阳市做网站公司广州 网站设计公司排名
  • 如何弄网站排名书店网站建设需求分析调研表
  • 如何查询网站空间wordpress搭建淘宝客自动获取
  • 网上做头像用什么网站服装企业官方网站
  • 网站切换wordpress 父页面
  • 大数据平台怎么搭建宁波seo关键词优化设计
  • 百度网站分析报告网页游戏制作软件
  • 校园网站建设情况说明书福州网站建设seo
  • 徐州做网站最好的公司交互型网站开发
  • 网页设计建网站流程wordpress 首页调用文章
  • 网站开发费用怎么做账页面访问界面升级狼
  • 188旅游网站管理系统6.0模板设计网站公司开发
  • 万网主机 网站访问关于网站建设心得体会
  • 企业营销网站建设步骤公司域名注册后怎么建设网站
  • xampp wordpress安装seo做的比较牛的公司
  • 网站咨询界面设计大丰专业做网站
  • 360如何做网站怎么做网站规划
  • 流媒体网站开发深圳华强北现在能去吗
  • 韩国做游戏的电影 迅雷下载网站wordpress免费淘宝客主题
  • 大型电子商务网站建设国家工信部网站备案查询系统
  • 怎么制作网站程序什么是网络营销哪些行业