暂时未有相关云产品技术能力~
南京沂洲信息咨询有限公司官方
我们获取过来的DOM元素是一个对象(object),所以称为文档对象模型。 关于DOM操作,我们主要针对元素的操作有创建、增、删、改、查、属性操作、事件操作。 创建 document.write innerHTML createElement 增 appendChild insertBefore 删 removeChild 改 主要修改dom的元素属性,dom元素的内容、属性、表单的值等。 修改元素属性:src、href、title等 修改普通元素内容:innerHTML、innerText 修改表单元素:value、type、disabled等 修改元素样式:style、classN
正则表达式 正则表达式是用于匹配字符串字符组合的模式,在JavaScript中,正则表达式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。 其他语言也会使用正则表达式,本阶段我们主要是利用 JavaScript 正则表达式完成表单验证。 特点 灵活性、逻辑性和功能性非常的强。 可以迅速地用极简单的方式达到字符串的复杂控制。 对于刚接触的人来说,比较晦涩难懂。比如:
在给数组push的时候发现一个新的方法unshift() 就找了一下区别: push() push() 方法(在数组结尾处)向数组添加一个新的元素: var webKnowledge = ["HTML", "CSS", "JS", "VUE"]; webKnowledge.push("REACT"); // 向 webKnowledge 添加一个新元素 REACT //新数组为:["HTML", "CSS", "JS", "VUE", "REACT"] push() 方法返回新数组的长度: var webKnowledge = ["HTML", "CSS", "JS",
变量 变量就是一个装东西的盒子。 变量是用于存放数据的 容器,我们通过 变量名获取数据,甚至数据可以修改。 本质:变量是程序在内存中申请的一块用来存放数据的空间。 类似我们酒店的房间,一个房间就可以看做是一个变量。 变量的使用 声明变量 // 声明变量 var age;//声明一个名称为age的变量 var是一个JS关键字,用来声明变量(variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管。 age是程序员定义的变量名,我们要通过变量名来访问内存中分配的空间。 赋值 age = 10;//给ag这个变量赋值为10 = 用来把右边的值赋
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。 简单来说,数据类型就是数据的类别符号。比如姓名”张三“,年龄18,这些的数据类型是不一样的。 变量的数据类型 Javascript是一种弱类型或者说动态语言。 这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。 var age = 10; //这是一个数字型 var areYouOK = '是的' //这是一个字符串 js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的。 var x = 10; //x是数字型 x
解构赋值语法是一种 JavaScript 表达式,通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。这种语法是 ECMAscript 6 规范引入了一种新语法,可以更轻松地从数组和对象中获取值。 提取数据 先来看看如何在 JavaScript 中解构对象,可以从这个商品对象的简单示例开始。 const product = { id: 1, title: "Nike Air Zoom Pegasus 38", product_image: "/resources/products/01.jpeg", shown: "White/Pure Pla
复习原因 在项目的开发当中,之前数据库连接信息都是写死在配置文件当中。但是突然接到一个需求: 获取外部数据源信息,然后将某些数据通过Echarts绘制成折线图展示出来(ps:数据源需要用户手动设定) 有点懵,因为之前都是写死在配置文件当中的,然后在网上也找了一些资料,发现都不是自己想要的。 最后想到,既然是简单的获取数据进行展示,直接使用JDBC连接数据库获取就可以了啊。没有必要搞什么骚操作。 JDBC 一直使用的JPA或者mybatis进行数据库连接,很少使用JDBC进行数据库连接。 因此也复习一下JDBC,毕竟无论是JPA还是Mybatis都是对JDBC的一个封装。 什么是JD
在使用hutool工具包的时候,发现hutool工具包无法判断是否是工作日还是节假日(因为每年节假日各不相同,所以自己写了一个) 当前只有2021年的数据,后续的数据需要等国务院发布 节假日数据来源:国务院办公厅关于2021年部分节假日安排的通知 package cn.hjljy.crawler.demo.holiday; import com.sun.org.apache.xpath.internal.operations.Bool; import java.text.SimpleDateFormat; import java.time.DayOfWeek; import java.t
【Java 基础】Java 数据类型和 MySql 数据类型对应表MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT
Ubuntu上使用docker安装mysql1.docker仓库搜索mysql docker search mysql /images/img/20220308164142.png 2.docker仓库拉取mysql8.0镜像 docker pull mysql:8.0 docker pull mysql #拉取最新版本的mysql 3.查看本地镜像是否安装成功 docker images mysql:8.0 /images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL
MySQL编码 1.查看数据库编码格式 show create database <数据库名>; 2.查看数据表的编码格式 show create table <表名>; 3.创建数据库时指定数据库的字符集 create database <数据库名> character set utf8; 4.创建数据表时指定数据表的编码格式 create table tb_books( name varchar(45) not null, price double not null, bookCount int not null,
主键(primary key) 唯一标识表中每行的这个列(或这组列)称为主键 表中的任何列都可以作为主键,只要它满足以下条件: 任意两行都不具有相同的主键值; 每个行都必须具有一个主键值(主键列不允许为NULL) 外键(foreign key) 外键为某个表(子表)中的一列,它是另一个表(父表)的主键值,建立起两个表之间的关系。 MySQL基本使用 ############################# # 第3章 使用MySQL ############################# create database crashcourse default character s
内部类 内部类既可以访问自身的数据域,也可以访问创建它的外部类对象的数据域 内部类对象总有一个隐式引用,它指向了创建它的外部类的对象 外部类的引用在内部类的构造方法中设置,不必手动设置,编译器会自动在构造方法中生成外部类引用 只有内部类可以是私有的,建议设置为私有的,这样只有外部类的方法才可以构造该对象。 在外部类的作用域中,可以通过OuterClass.InnerClass引用内部类 只有静态内部类可以有静态方法 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.aw
接口(interface) 接口是一个不含任何成员变量的抽象类 接口中所有方法必须为public 接口中不能定义成员变量,但是可以定义为一个常量(类型为public static final) 不能用new来实例化一个接口,但是允许定义一个接口变量 接口变量必须引用实现了该接口的类对象 同一个类可以同时实现多个接口 接口可以定义default方法,该方法提供了一个默认的实现,实现该接口时可以按需重写该方法 接口中的默认方法可以调用其他任意方法 java-SE8后允许接口定义静态方法 public class InterfaceTest implements Test{ public
继承(inheritance) 继承满足“is-a”规则,即Manager is a Employee /images/all/image-20221113161049769.png 如果子类的构造方法没有显式地调用超类的构造方法,则将自动地调用超类的无参构造,如果没有超类没有定义无参构造方法,编译报错。 this关键字的用途: 引用隐式参数 调用该类其他的构造方法 super关键字的用途: 调用超类的方法 调用超类的构造方法 调用其他构造方法的语句只能出现在构造方法中的第一行 import java.util.Date; import java.util.GregorianCale
多线程实现 方法1: 继承Thread类 public class Main { public static void main(String[] args) throws InterruptedException { Worker worker1 = new Worker(); worker1.setName("thread-worker1"); Worker worker2 = new Worker(); worker2.setName("thread_worker2"); worker1.start
基本数据类型 public class Main { public static void main(String[]args) { // 2进制表示--10进制为3 System.out.println(0b0011); // 16进制表示--10进制为14 System.out.println(0xe); // 8进制表示--10进制为8 System.out.println(010); // 可以在数字中加下划线便于阅读 System.out.prin
lambda 是包着一个函数的对象 lambda 表达式非常简洁优雅。是把动态语言的特性嫁接到静态语言的一个典范。 在 java 中,我更加愿意认为 lambda 实际上是是包着一个函数的对象,我们在使用 lambda 表达式的时候,实际上定义了一个闭包的函数对象,这是 lambda 最大的意义所在。在过去,我们在函数之间传递一个函数,必须手动把它包装成类的对象,并用接口加以规范。现在,我们可以直接用 lambda 自动生成一个这样的对象。 如果你用过 Javascript/Python,你可以把刚刚定义的函数当做对象传给别的函数。现在,你用 lambda 也可以在 java 的里面传参时
Stream 的类型 Stream 有分普通流和数值流,之间没有继承关系,普通流用一个泛型表示流中的数据结构类型,如 Stream 数值流主要是避免重复的装箱拆箱,统一用原始数值类型(无法应用泛型指定类型),int long double,我们在做终结操作的时候需要统一装箱 .box() 转成普通流 Stream 的生命周期 创建流 -> 中间操作 -> 终结操作 Stream 的特点 无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java 容器或 I/O channel 等。 为函数式编程而生。对stream的任何修改都不会修改背后的数据源,
JDK Proxy 代理是可以根据我们的 接口 Interface 生成类的字节码,从而可以在 Java 中为所欲为的一种技术,包括对象增强(修改成员变量),函数增强(在函数前后执行别的代码),根据接口名执行不同逻辑 等。在 Mybatis 中有典型应用。它的本质是 由 Proxy 生成一个 代理对象,实现我们的接口。这个对象中有我们的回调函数。当调用 代理对象的接口方法时,这个对象再调用我们的回调函数,我们的回调函数再调用原对象的对应方法。从而实现代理。为了实现代理模式,Proxy 用了另外一种设计模式:命令模式。 不过,如果我们没有接口,直接是个类,那么 Proxy 将不能用,我们可能需
我相信大部分人看到这些名词,都是一头雾水的,如果你去搜索引擎搜索,那么恭喜你,你又会被各种文章中的高大上的名词搞得云里雾里。那么,我们应该怎么理清这么名词之间的关系呢? 所谓 同步/异步/阻塞/非阻塞 IO ,是指操作系统中的对 IO 处理的不同方法,而 Java 对这些不同操作方法做了一些包装,由此有了 BIO / NIO / AIO 几种操作接口。 我不想复制一些高大上的概念,只是想尽量好好说话,说清楚他们之间的关系。 需求 有 A、B、C、D 四个线程可以生产文件,假设他们的返回的文件是一样的,对应我们的服务端 有 E、F、G、H 四个线程在随机时间向服务端上传一个文本,并且要求
Java String 的 常量池 和 intern 方法 简析字符串常量池和 intern 方法 先举个例子,我们创建 10000 个相同的 String,并且不使用常量池 String[] list = new String[10000]; for (int i = 0; i < 10000; i++) { list[i] = new String(new char[]{'a','b','c'}); } 结果是:每个 String 都用新开的对象,占用大量内存 现在我们这样创建,增加一个 map ,key 和 value 内容一样,每次取的时候,先检查一下 map 里面有没
Java 泛型中的通配符泛型问题困扰我很久,即 <? super T> 和 <? extends T> 和 <?> 这几种泛型,到底是什么,到底怎么用。从含义上理解, super 是指 T 和 T 的父类,extends 是指 T 和 T 的子类。网上有一个简单的原则叫PECS(Producer Extends Consumer Super)原则:往外读取内容的,适合用上界 Extends,往里插入的,适合用下界 Super。不过这个原则讲得很含糊,而且没有考虑到全部情境,所以我写一篇文章再来讲一下这几个泛型到底怎么用。 通配符泛型用在哪里? 网上很多资料连用在哪里都没有说清楚,导致我们用的
Iterators迭代器 挑战1 问题: A) 创建一个for循环,用于遍历数组,返回数组的所有元素的总和。 B) 创建一个函数式迭代器,调用时遍历传入的数组的每一个元素,每次一个元素。 题解: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // CHALLENGE 1 function sumFunc(arr) { // YOUR CODE HERE let sum = 0 for(let i = 0; i < arr.length; i
Promises期约 挑战1 问题: 让我们从复习异步函数开始吧!使用setTimeout,在1000ms后打印字符串“Hello!”。 题解: 1 2 3 4 5 6 7 8 9 // Challenge 1 function sayHello() { // ADD CODE HERE setTimeout(() => console.log('Hello!'), 1000) } // Uncomment the line below when ready sayHello(); // should log "Hello" after 1000ms 挑战2 问题: 创建一
异步 挑战一 sayHowdy 问题: 思考时间(现在暂时不需要编写代码):分析下方挑战一的代码,打印出来的结果会是怎样顺序的?Howdy先还是Partnah先? 题解: 1 2 3 4 5 6 7 8 9 10 11 12 /* CHALLENGE 1 */ function sayHowdy() { console.log('Howdy'); } function testMe() { setTimeout(sayHowdy, 0); console.log('Partnah'); } // After thinking it through, uncomment t
java IO流 文件 文件就是保存数据的地方。 文件流,文件在程序中时以流的形式来操作的 Java IO流插图 创建文件 相关方法: 根据路径构建一个Fiile对象:new File (String pathname); 根据父目录文件+子路径构建:new File(File parent , String child); 根据父目录+子路径构建 :new File ( String parent , String child); package IOStream.opp1; import org.junit.jupiter.api.Test; import j
Java八大常用类(五) 时间类常用类 4 Date类和DateFormat类 我们把1970年1月1日00:00:00 定为基准时间 Date类 大部分方法已过时,不常用 package oop2.date; /* Date中的三个类 sql包下的类 Date: 只含有年月日 Time: 只含有时分秒 Timestamp: 时间戳,既含有年月日,又含有时分秒 */ import java.sql.Date; public class DateB { public static void main(String[] args) {
StringBuffer和StringBuilder 非常类似,均代表可变的字符序列。这两个类都是抽象类的,方法一模一样 StringBuffer线程安全,做线程同步检查,效率低 StringBuilder线程不安全,不做线程同步检查,效率较高,建议使用该类 StringBuilder的使用 速度对比: package oop2.demo06; public class StringF { public static void main(String[] args) { String str = "bnu"; StringBuilder bui
字符串相关类,面试问的多,但是应用简单 String类的简单掌握方法 package oop2.demo06; import javax.sound.midi.Soundbank; import java.util.Locale; import java.util.UUID; public class StringB { public static void main(String[] args) { String a = "beijing"; String b = ""; //空字符串 String c = null;
设计原则1 单一原则 高内聚,低耦合 设计原则2 开闭原则 OCP(重要) 对谁开放,对谁关闭 对扩展开放,对修改关闭 设计原则3 里氏替代原则 父类可以出现的地方,子类也可以出现(继承多态) 设计原则4 依赖倒置原则(重要) 核心是面向接口编程 设计原则5 接口分离原则 建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少 设计原则6 迪米特法则 尽量降低类与类之间的耦合 两个类之间不必彼此通信 设计原则7 组合聚合复用原则 优先使用对象组合,而不是类继承(要尽量使用合成和聚合,尽量不要使用继承) 类与类之间的关系 1 继承、实现 类与类之间的关系 2 依
对象13.1:instanceof instanceof(类型转换)引用类型,判断一个对象是什么类型 package oop.Demo07; public class Application { public static void main(String[] args) { // Object > String // Object > Person > Teacher // Object > Person > Student Object object = new Student(); // System
对象05:构造器详解 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。 两大特点: 必须和类的名字相同 必须没有返回类型,也不能写void 注意点 定义有参构造之后,如果想使用无参构造,必须显示的定义一个无参的构造 IDEA快捷键 Alt + Insert Application.java package oop.demo02; // 一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { Persion persion1
自带的弹窗介绍: arcgis api 3.X 修改自带弹窗样式插图 /*修改原有弹窗的css样式*/ /* 弹窗整体 */ .esriPopup { font-size: 16px; box-shadow: 10px 10px 5px #888888; } .esriPopup .sizer { position: relative; width: 400px; /* 弹窗宽度 */ z-index: 1; } /* 标题部分 */ .esriPopup .titlePane { background-color: rgba(7
transition-property 过渡属性,默认值为all transition-duration 过渡持续时间,默认时间为0s transition-timing-function 过渡函数,默认ease函数,还有ease-out(先快后慢)、ease-in(先慢后快)、linear(匀速)等等函数 transition-delay 过渡延迟时间,默认0s <div class="ceng"> </div> .ceng{ width:100px; height:100px; background-color:pink; cursor:point
linear-gradient( [ || ,]? , [,]* ) < angle >:用角度指定渐变方向或者角度 to left to right to top to bottom <div class='ceng'> </div> .ceng{ width:260px; height:200px; border:1px solid black; background-image:linear-gradient(orange,green); /*从橘红色向绿色渐变,从上到下*/ background-image:linear-g
CSS3 浏览器支持情况 网址查询:caniuse.com CSS3的伪类选择器(一) 动态伪类选器 a:link{} a:visited{} a:hover{} a:active{} UI元素状态伪类选择器 html部分: <input type="text"> <input type="text" disable> // disable 是状态 CSS部分:(根据状态确定样式) input :enable{} input:disable{} CSS3的伪类选择器(二) 结构伪类选择器 html部分: <ul
数组01:什么是数组 数组是同类型数据的集合 数组的下标从0开始 数组02:数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组。 dataType[] arrayRefVar; //首选方法 或 dataType arrayReVar[]; java语言使用new操作符来创建数组,语法如下: dataType[] arrayReVar = new dataType[arraySize]; package array; public class ArrayDemo01 { public static void main(String[] args) {
访问修改函数 static:它用于使成员(块、方法、变量或嵌套类)可以独立于任何其他成员使用,而无需参考特定情况。 strictfp:用于限制、浮点、浮点运算和计算,并在浮点变量中执行任务时保证每个阶段的结果相同。 synchronized:它用于在Java中获得适用于块和方法的同步。 transient:作为序列化的一部分使用的因子修饰符。在序列化的季节,如果我们不想对记录中的特定变量进行多余的估计,那么此时,我们使用transient关键字。 volatile:如果修饰符告诉编译器,由不稳定变量调整的变量通过程序的不同部分发生惊人的变化,则使用volatile。 Java关键字的
对Java一窍不通的初学者,正准备准备参照着网上的文档配置Java环境。费了九牛二虎之力是装好了,环境也配好了。cmd窗口验证java -version显示正常,输入javac -version提示"javac不是内部或外部命令,也不是可运行的程序"。全网搜索到的信息基本一致。但是最后都没什么卵用。重装卸载N次,依然不得想要的结果。