js代码规范
注释规范
函数说明注释:在函数声明上方键入 /** ,再按回车键:
/**
* @function 处理表格的行
* @description 合并Grid的行
* @param grid {Ext.Grid.Panel} 需要合并的Grid
* @param cols {Array} 需要合并列的Index(序号)数组;从0开始计数,序号也包含。
* @param isAllSome {Boolean} :是否2个tr的cols必须完成一样才能进行合并。true:完成一样;false(默认):不完全一样
* @return void
* @author polk6 2015/07/21
* @example
* _________________ _________________
* | 年龄 | 姓名 | | 年龄 | 姓名 |
* ----------------- mergeCells(grid,[0]) -----------------
* | 18 | 张三 | => | | 张三 |
* ----------------- - 18 ---------
* | 18 | 王五 | | | 王五 |
* ----------------- -----------------
*/
function mergeCells(grid: Ext.Grid.Panel, cols: Number[], isAllSome: boolean = false) {
// Do Something
}
javadoc参数说明:
@see
生成文档中的“参见xx 的条目”的超链接,后边可以加上:“类名”、“完整类名”、“完整类名#方法”。可用于:类、方法、变量注释。
@param
参数的说明。可用于:方法注释。
@return
返回值的说明。可用于:方法注释。
@exception
可能抛出异常的说明。可用于:方法注释。
@version
版本信息。可用于:类注释。
@author
作者名。可用于:类注释。
@deprecated
对类或方法的说明 该类或方法不建议使用,引起不推荐使用的警告
@note
表示注解,暴露给源码阅读者的文档
@remark
表示评论,暴露给客户程序员的文档
@since
表示从那个版本起开始有了这个函数
@see
表示交叉参考
jQuery
jQuery深拷贝
jQuery.extend( [deep ], target, object1 [, objectN ] )
$.extend(true, obj1, obj2)
将 obj2
的对象属性深拷贝给 obj1
js
substring()
与 substr()
的主要区别
substring()
方法的参数表示起始和结束索引,substr()
方法的参数表示起始索引和要包含在生成的字符串中的字符的长度,示例如下:
vartext = 'Mozilla';
console.log(text.substring(2,5)); // => "zil"console.log(text.substr(2,3)); // => "zil"
关于 padStart
padStart
可以在字符串的开头进行字符补全。 语法如下:
str.padStart(targetLength [, padString])
其中:
targetLength
指目标字符串长度。然后,根据我的测试,targetLength
参数缺省也不会报错,原本的字符串原封不动返回,不过代码没有任何意义,因此,基本上没有使用的理由。
还有,targetLength
参数的类型可以是数值类型或者弱数值类型。在JavaScript中,1 == '1'
,1
是数值,'1'
虽然本质上是字符串,但也可以看成是弱数值。在 padStart()
方法中,数值类型或者弱数值类型都是可以。例如: js 'zhangxinxu'.padStart('5');
因此,我们实际使用的时候,没必要对targetLength参数进行强制的类型转换。
最后,如果 targetLength
设置的长度比字符串本身还要小,则原本的字符串原封不动返回,例如:
'zhangxinxu'.padStart(5);
// 结果还是'zhangxinxu'
padString
(可选) padString
表示用来补全长度的字符串。然而,虽然语义上是字符串,但是根据我的测试,任意类型的值都是可以的。无论是Chrome浏览器还是Firefox浏览器,都会尝试将这个参数转换成字符串进行补全。例如下面几个例子:
'zhangxinxu'.padStart(15, false);
// 结果是'falsezhangxinxu'
'zhangxinxu'.padStart(15, null);
// 结果是'nullnzhangxinxu'
'zhangxinxu'.padStart(15, []);
// 结果是'zhangxinxu',因为[]转换成字符串是空字符串
'zhangxinxu'.padStart(15, {});
// 结果是'[objezhangxinxu',只显示了'[object Object]'前5个字符
padString
参数默认值是普通空格' '
(U+0020),也就是敲Space空格键出现的空格。
从上面几个案例可以看出,如果补全字符串长度不足,则不断循环补全;如果长度超出,则从左侧开始依次补全,没有补到的字符串直接就忽略。 此方法返回值是补全后的字符串。
常用缩写
diff 比较
patch 修改/补丁
vue命令的缩写或简写
v-on
@
v-bind
:
v-slot
#
Vue文档学习
可复用&组合
混入
我们可以预先设定一套或多套组件设置,可以任意组件选项:data
,method
,watch
,钩子函数等等。如果任何组件想要使用某一套设置,就可以通过mixins选项来将它包含进来,为自己所用。我们称这套设置(对象)为混入对象 。
// define a mixin object
const myMixin = {
created() {
this.hello()
},
methods: {
hello() {
console.log('hello from mixin!')
}
}
}
// define an app that uses this mixin
const app = Vue.createApp({
mixins: [myMixin]
})
app.mount('#mixins-basic') // => "hello from mixin!"
如果混入对象的某一选项名与组件相同,则使用组件的选项。不过也可以自定义合并函数。
缺点:混入对象一旦定义就不能修改,缺少灵活性。在Vue3中可以使用组合式API来解决。
自定义指令
除了v-on
、v-bind
、v-slot
外,Vue支持自定义指令,方便我们操作DOM元素。在组件的directives
选项中可以自定义指令。注意在mounted
的参数el
是DOM元素而不是jquery元素。
全局注册指令
const app = Vue.createApp({})
// 注册一个全局自定义指令 `v-focus`
app.directive('focus', {
// 当被绑定的元素插入到 DOM 中时……
mounted(el) {
// Focus the element
el.focus()
}
})
局部注册指令
directives: {
focus: {
// 指令的定义
mounted(el) {
el.focus()
}
}
}
使用自定义指令,该指令使元素自动聚焦。
在上面的例子中,我们使用了mounted
的钩子函数,实际上,在一个指令定义对象还可以提供如下几个钩子函数:
beforeMount
:当指令第一次绑定到元素并且在挂载父组件之前调用。在这里你可以做一次性的初始化设置。
mounted
:在挂载绑定元素的父组件时调用。
beforeUpdate
:在更新包含组件的 VNode 之前调用。
updated
:在包含组件的VNode及其子组件的VNode更新后调用。
beforeUnmount
:在卸载绑定元素的父组件之前调用
unmounted
:当指令与元素解除绑定且父组件已卸载时,只调用一次。
除此之外,钩子函数还可以设置动态参数,在模板中以v-mydirective:[argument]="value"
形式使用,argument
为键,value
为值。
Scroll down inside this section ↓
I am pinned onto the page at 200px to the left.
const app = Vue.createApp({
data() {
return {
direction: 'right'
}
}
})
app.directive('pin', {
mounted(el, binding) {
el.style.position = 'fixed'
// binding.arg is an argument we pass to directive
const s = binding.arg || 'top'
el.style[s] = binding.value + 'px'
}
})
app.mount('#dynamic-arguments-example')
如果自定义指令只关注mounted
和updated
两个钩子函数且内容一样,可以使用箭头函数简写。
app.directive('pin', (el, binding) => {
el.style.position = 'fixed'
const s = binding.arg || 'top'
el.style[s] = binding.value + 'px'
})
注意
在具有多个根节点上使用自定义指令时可能出现问题,这与渲染函数有关,笔者不太了解,具体可查阅文档:自定义指令 | Vue3中文文档。
Teleport | 传送
在我们定义组件的模板的时候,有时候需要模板上的一部分逻辑上属于模板,但是页面上呈现出来的效果不像镶嵌在组件中。比如点击出现一个全屏信息,这需要我们把这一部分传送到合适的DOM节点下,在Vue中我们使用
标签来传送到父组件中的DOM节点。
app.component('modal-button', {
template: `
Open full screen modal! (With teleport!)
I'm a teleported modal!
(My parent is "body")
Close
`,
data() {
return {
modalOpen: false
}
}
})
渲染函数 h()
内容较多,此文章介绍的比Vue中文文档清楚一点 Vue render函数 | 。
简单总结以下,渲染函数是Vue中模板等编译为DOM元素的函数。
Vue在渲染过程中,有三种渲染模式:自定义render
函数、模板、el
均可以渲染页面,对应三种写法如下:
自定义render
函数
Vue.component('anchored-heading', {
render: function (createElement) {
return createElement (
'h' + this.level, // tag name标签名称
this.$slots.default // 子组件中的阵列
)
},
props: {
level: {
type: Number,
required: true
}
}
})
template
写法
let app = new Vue({
template: `{{ msg }}
`,
data () {
return {
msg: ''
}
}
})
el写法
let app = new Vue({
el: '#app',
data () {
return {
msg: 'Hello Vue!'
}
}
})
而这三种渲染模式最终都是要得到render
函数。
接下来讲一下render
函数的三个参数:
(必选)标签tag,类型可以是{String | Object | Function}
三种之一;
Vue.component('custom-element', {
render: function (createElement) {
return createElement('div')
}
})
let app = new Vue({
el: '#app'
})
(可选)属性prop,类型是对象Object
;
Vue.component('custom-element', {
render: function (createElement) {
var self = this
// 第一个参数是一个简单的HTML标签字符 “必选”
// 第二个参数是一个包含模板相关属性的数据对象 “可选”
return createElement('div', {
'class': {
foo: true,
bar: false
},
style: {
color: 'red',
fontSize: '14px'
},
attrs: {
id: 'boo'
},
domProps: {
innerHTML: 'Hello Vue!'
}
})
}
})
let app = new Vue({
el: '#app'
})
(可选)子节点children,类型可以是{String | Array}
两种之一。
Vue.component('custom-element', {
render: function (createElement) {
var self = this
return createElement(
'div', // 第一个参数是一个简单的HTML标签字符 “必选”
{
class: {
title: true
},
style: {
border: '1px solid',
padding: '10px'
}
}, // 第二个参数是一个包含模板相关属性的数据对象 “可选”
[
createElement('h1', 'Hello Vue!'),
createElement('p', '开始学习Vue!')
] // 第三个参数是传了多个子元素的一个数组 “可选”
)
}
})
let app = new Vue({
el: '#app'
})
在模板写法中,v-if
、v-on
、v-model
等等指令或者自定义指令都会形成代码,Vue的渲染函数就不会提供专有的替代方法,但是我们也可以自己在渲染函数中实现一样的功能。这样做的优点是可以更加自如地定制指令的效果。具体的代码查看 使用 JavaScript 代替模板功能 | Vue3中文文档 。
插件
插件 | Vue中文文档
你可能感兴趣的:(每周总结 函数方法注释规范/jQuery深拷贝/js补全函数/Vue文档学习)
利用prompt技术结合大模型对目标B/S架构软件系统进行测试
小赖同学啊
自动化测试(app pc API) prompt 架构
利用prompt技术结合大模型对目标B/S架构软件系统进行测试,可参考以下步骤和方法:测试需求理解与prompt设计明确测试点:梳理B/S架构软件系统的功能需求、非功能需求(如性能、安全性、兼容性等),确定具体的测试点,如用户登录功能、数据查询功能、系统响应时间要求等。设计prompt:根据测试点,设计能引导大模型给出相关测试思路、用例或预期结果的prompt。例如,对于用户登录功能测试,prom
Python库房管理系统开发指南
Tech Synapse
python 开发语言
在现代仓储管理中,高效、准确的信息系统是提高运营效率的关键。Python作为一种强大且易于学习的编程语言,非常适合用来开发简易而功能齐全的库房管理系统。本文将详细介绍如何使用Python编写一个基本的库房管理系统,包括商品入库、出库、查询库存及生成报表等功能。通过本文,读者不仅能学习到Python编程技巧,还能理解库房管理系统的基本架构和逻辑。一、系统需求分析在开发库房管理系统之前,我们需要明确系
黑马苍穹外卖学习笔记
窦莎言Firm
黑马苍穹外卖学习笔记【下载地址】黑马苍穹外卖学习笔记本仓库提供了一份关于“黑马苍穹外卖”的学习笔记,由笔者在课余时间学习整理而成。笔记内容涵盖了部分源码解析、学习心得以及个人体会,旨在帮助有兴趣的读者更好地理解和掌握相关知识项目地址:https://gitcode.com/Open-source-documentation-tutorial/b7c5a资源描述本仓库提供了一份关于“黑马苍穹外卖”的
常见的深度学习模型总结
编码时空的诗意行者
深度学习 人工智能
1.深度前馈神经网络(DeepFeedforwardNetworks)发明时间:2006年左右,随着计算能力的提升和大数据集的可用性增加,深度学习开始兴起。发明动机:解决传统机器学习模型在复杂数据上的局限性,如线性模型无法处理非线性关系的数据。模型特点:由多个隐藏层组成的神经网络,每一层的节点与下一层的节点完全连接。应用场景:分类、回归、语音识别、图像识别等。2.卷积神经网络(Convolutio
手把手教你Linux内核编译:从零开始编写
深度Linux
C/C++全栈开发 操作系统 linux 内存管理 内核编译
在计算机技术的广袤星空中,Linux内核宛如一颗最为璀璨而神秘的巨星,散发着无尽的魅力与诱惑。它是操作系统的心脏,掌控着计算机系统的一切核心资源与底层运作。如今,我们即将踏上一场激动人心的冒险之旅——一步步解锁Linux内核,开启从零开始的编程征程。一、简介Linux内核作为操作系统的核心,其魅力在于多方面。首先,它负责资源管理和设备驱动等重要任务。学习Linux内核编程,能够让开发者深入了解操作
QT生成随机数
@hdd
Qt
QT生成随机数和C语言差距不大,C语言用srand()和rand(),QT是用Qsrand()和qrand();QT生成随机数的格式是:qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));qrand();这里因为有QTime()所以要加头文件#include,而qsrand和qrand这两个函数则在#include里。qsrand用来设置一个种子,该
qt中文乱码
@hdd
Qt
刚开始学习qt,经常会遇到中文输出乱码,在网上找了解决办法有下面这个两个办法QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));或QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));我试过发现不行,然后翻阅书,发现这行代码可以在主函数
深度学习 视频推荐
小赖同学啊
人工智能 深度学习 音视频 人工智能
以下为你呈现一个基于深度学习实现视频推荐的简化代码示例。这里我们使用的是协同过滤思想结合神经网络的方式,借助TensorFlow和Keras库来构建模型。在这个示例中,假设已有用户对视频的评分数据,目标是预测用户对未评分视频的评分,进而为用户推荐可能感兴趣的视频。1.环境准备要确保你已经安装了必要的库,如numpy、pandas、tensorflow等,可以使用以下命令进行安装:pipinstal
深入理解 Qt 信号与槽机制:原理、用法与优势
@hdd
Qt qt
一、信号与槽的概念在Qt编程中,信号与槽机制是实现对象间通信的核心工具。信号:本质上是一种特殊的成员函数声明,它不包含函数体,仅用于通知其他对象某一事件的发生。例如,当用户点击界面上的按钮时,按钮对象就会发出clicked信号,告知系统“按钮被点击了”这一事件。槽:用于响应信号的普通成员函数。它与普通C++函数类似,可以有参数,也能被重载,并且可以定义在类的public、protected或pri
Python的pickle库的简单使用
_Ocean__
python 开发语言
pickle是Python中用于序列化和反序列化对象的标准库。它可以将对象转换为字节流,以便在存储或传输过程中使用,也可以将字节流重新转换回原始对象。基本使用方法如下:序列化对象:将对象转换为字节流的过程称为序列化。可以使用pickle.dump()函数将对象序列化并写入文件,或使用pickle.dumps()函数将对象序列化为字节流。pickle.dump(obj,file):将对象 obj 序
WebSocket与Socket.io的区别
前端没钱
前端基础与进阶 websocket 网络协议 网络
文章目录引言一、WebSocket:原生的实时通信协议(一)WebSocket是什么(二)WebSocket的工作原理(三)WebSocket的使用方法(四)WebSocket的优势(五)WebSocket的局限性二、Socket.io:更强大的实时通信库(一)Socket.io是什么(二)Socket.io的工作原理(三)Socket.io的使用方法(四)Socket.io的优势(五)Socke
【16. 深入理解 C++ 字符串】
涛ing
C++基础 c++ 开发语言 c语言 ubuntu linux vim visual studio
本章目录:前言C风格字符串声明与初始化输出结果常用函数示例输出结果C++的`string`类核心特性示例输出结果常用成员函数示例:复杂操作输出结果`sizeof`vs`strlen`示例输出结果总结前言C++提供了两种主要的字符串表示形式:C风格字符串和C++的string类。本文将从两者的概念、用法以及各自的特性入手,详细解读它们的应用场景,并通过创新示例和读者常见疑问为你提供深入的理解。C风格
Tenserflow学习笔记 【一:Python入门】
邪魔小屁屁
神经网络与深度学习 python 数据结构 机器学习
Python序列数据结构初习一.前言Python的两种主要的序列数据类型二.关于序列的相关操作1.索引2.切片[开始位置:结束位置]3.获取长度len()4.添加元素①append()②insert(a,b)5.合并列表①extend()②‘+’6.删除元素del6.排序7.遍历序列8.字典①遍历②添加、修改指定元素的取值③合并字典update()④删除字典中的元素9.集合(略)总结一.前言Pyt
23、深度学习-自学之路-激活函数relu、tanh、sigmoid、softmax函数的正向传播和反向梯度。
小宇爱
深度学习-自学之路 深度学习 人工智能
在使用这个非线性激活函数的时候,其实我们重点还是学习的是他们的正向怎么传播,以及反向怎么传递的。如下图所示:第一:relu函数的正向传播函数是:当输入值(隐藏层)值大于了,就输出自己本身的值。反向梯度传播:当输出值大于0,那么反向梯度值就等于输出值乘以1如果小于0,那反向梯度值就等于0.通俗的来说就是,如果输入值是0或小于0,那么输出值的反向增强就没有。如果输入值大于0,那么输出值的方向增强就有。
eclipse2017支持的Servlet的版本_jsp进阶(servlet篇)
weixin_39814369
Servlet篇(jsp重点)@author:杜勇帅@email:
[email protected] 一.Servlet基础一.Servlet概述Servlet是运行在服务器端的java程序(类),作用是接收并处理客户端的请求,生成响应给客户端。学习了Servlet后,jsp页面只负责展示数据,Servlet负责处理请求(调用Dao实现具体功能),并将数据转发到jsp页面上去展示(生成响应给客户端)
【学习笔记】vue-cli中组件间传参的方式
龚箭
vue.js 学习 笔记
一、父子组件传参首先创建子组件,子组件的名字为component1.vue接受父组件:{{name}}打印父组件的信息exportdefault{//子组件通过props组件接收,name需要和父组件的key一致props:['name'],data(){return{}},mounted(){},methods:{Forward(){console.log(this.name);},},}然后在
HarmonyOS第一课第四章习题答案
喊我小垚女
鸿蒙 harmonyos 华为 鸿蒙 鸿蒙系统
应用程序框架基础判断题1.在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。答案:对2.一个应用只可以包含一个UIAbility组件。答案:错误3.Background状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。答案:错误单选题1.关于module.json5
自动驾驶技术的未来趋势与挑战分析
智能计算研究中心
其他
内容概要自动驾驶技术自诞生以来经历了多个发展阶段。最初的研究集中在感知和控制系统的基础构建,随后进入了数据处理和算法的优化阶段,如今,随着人工智能和机器学习技术的快速应用,自动驾驶行业正处于一个前所未有的迅猛发展期。当前,行业内涌现出多种解决方案,各大汽车制造商与科技公司纷纷加大投入,推动这一领域的技术进步。市场需求不断增加,为自动驾驶技术注入活力。城市交通拥堵、环境污染等问题促使人们寻求更加智能
DataWhale 数学建模导论学习笔记(第一章)
ryanYu_127
学习 笔记
要点:利用Python作为计算工具帮助解决数学模型。一、前期准备工作1.AnacondaNavigator帮助安装了NumPy所需的功能包。2.通过Jupyter_Lab,可以直接测试代码运行的结果。3.通过vscode可以修改文本并即时看到预览结果,解决一些符号、公式、表格显示不正常的问题。4.这也是我第一次使用CSDN记录自己的学习笔记。二、进入第一章正题解析方法与几何建模:1.前面的向量和矩
基于联邦学习的政务大数据平台应用研究
宋罗世家技术屋
计算机软件及理论发展专栏 政务 大数据
摘要当前数字政府建设已进入深水区,政务大数据平台作为数据底座支撑各类政务信息化应用,其隐私数据的安全性和合规性一直被业界广泛关注。联邦学习是一类解决数据孤岛的重要方法,基于联邦学习的政务一体化大数据平台应用具有较高的研究价值。首先,介绍政务大数据平台及联邦学习应用现状;然后,分析政务大数据平台面临的隐私数据的采集、分类分级、共享三大管理挑战;接着,阐述基于联邦学习的推荐算法和隐私集合求交技术的解决
线程同步CountDownLatch的使用
初夏の猫
java 开发语言
CountDownLatch是Java中一个常用的同步工具类,主要用于协调多个线程的执行。它可以让一个或多个线程等待,直到其他线程执行完毕后才能继续。常见的使用场景是多个线程执行一些并行任务,主线程需要等待所有线程完成任务才能继续执行。基本概念:CountDownLatch类接受一个初始计数值,这个计数值通常是线程的数量。每个线程在完成其任务时调用countDown()方法将计数值减1,直到计数值
2021-03-01-深入浅出解析jsp
热爱Java的程序猿
后端 jsp servlet java
来历servlet的缺点导致jsp的产生JSP全称是JavaServerPagesjsp=html+js+Java+Tag用法servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示交给jsp来做在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用原理所有的jsp最后都编译成servlet,编译后的路径一般在t
TDesign:Picker 选择器
sunly_
TDesign tdesign
Picker选择器API文档地址单列选择器用法///viewonTap:(){TDPicker.showMultiPicker(context,data:[controller.coinList],title:'',rightTextStyle:TextStyle(color:AppColors.ColorMain),onConfirm:(selected){controller.onTapCoi
计算机网络之广域网(PPP协议)
DKPT
# 计算机网络 计算机网络 开发语言 算法 学习 笔记
一、定义与用途PPP协议主要用于在两个网络节点之间建立直接连接,并在此连接上进行数据传输。它是为在同等单元之间传输数据包这样的简单链路而设计的,这种链路提供全双工操作,并按照顺序传递数据包。PPP协议是各类型主机、网桥和路由器之间简单连接的一种共通解决方案。二、组成部分PPP协议由三个主要部分组成:数据帧封装方法:用于定义数据在传输过程中的格式。链路控制协议LCP(LinkControlProto
Springboot(五十)SpringBoot3集成sentinel并连接sentinel-dashboard
camellias_
spring boot sentinel 后端
对,你没看错,又是sentinel。我真是够了,而且,我觉得这应该不是最后一次,以后应该还会写到关于sentinel的学习记录。前边我们了解了sentinel如何使用。相对来讲还是比较简单的。之后学到自定义注解的时候,还自定义了一个sentinel注解来实现限流。用着相对来讲还是很方便的。但是呢,有一个小小的问题。官方推荐使用sentinel-dashboard,这玩意我一直没用明白。我得项目一直
小记 Java stream 中 peek()
神奏
盛开 java lambda
peek函数:接受一个函数作为参数。这个函数会被应用到每个元素上,并将结果元素映射成一个新的元素。相比于类似foreach,更类似于lambda中的map函数。map函数:接受一个函数作为参数。这个函数会被应用到每个元素上,并将返回值映射成一个新的元素。简单来说,map函数就是对流对象(集合中的所有对象)进行操作并返回一个Stream对象,这个Object对象可以是源对象的类型,也可以是其他类型。
HttpServletRequest 作用
冰糖心158
2025 Java面试系列 Java 开发 java
HttpServletRequest接口在JavaServletAPI中扮演着至关重要的角色,它是Servlet处理客户端HTTP请求的核心对象。每次客户端(例如浏览器)向服务器发送一个HTTP请求时,Servlet容器(例如Tomcat)都会创建一个HttpServletRequest对象,并将客户端的请求数据封装在这个对象中,然后将这个对象传递给Servlet的service()方法(或者do
fastapi 里面的同步异步问题
m0_75101866
fastapi
资料https://zhuanlan.zhihu.com/p/720868393实践将数据库查询操作的函数全部改为异步的即可附本地起一个简单的fastapi服务,定义4个接口,代码如下:fromfastapiimportFastAPIimporttimeimportasynciorouter=FastAPI()@router.get("/a")asyncdefa():time.sleep(1)re
Java进阶之泛型
m0_74824483
面试 学习路线 阿里巴巴 java 开发语言
泛型(Generics)定义泛型:允许在定义类、接口和方法时使用类型参数,从而在编译时捕获类型错误,提高代码的类型安全性和复用性。主要用途类型安全:避免类型转换错误,编译时检查类型安全。代码复用:通过泛型可以编写通用的类和方法,适用于多种数据类型。消除强制类型转换:在使用泛型时,编译器会自动进行类型转换,减少代码中的强制类型转换。泛型的基本语法标记符T是类型参数,通常使用T、E、K、V等字母来表示
基于深度学习的半导体检测与预测算法研究(二)
埃菲尔铁塔_CV算法
深度学习 人工智能 神经网络 opencv 计算机视觉 python
摘要随着半导体行业的飞速发展,对生产过程中的检测和性能预测提出了更高要求。深度学习凭借其强大的数据处理和特征提取能力,在半导体领域展现出巨大的应用潜力。本文详细探讨了深度学习在半导体缺陷检测、工艺参数预测等方面的应用原理和方法,介绍了常见的深度学习模型如卷积神经网络(CNN)、循环神经网络(RNN)及其变体在半导体数据处理中的应用,分析了模型训练与优化的关键技术,并通过实际案例验证了深度学习算法在
ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm 动态代理 ASM 字节码技术 TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
Springmvc-权限设计
bee1314
spring Web jsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c 算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
struts2中jsp自动跳转到Action
麦田的设计者
jsp webxml struts2 自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
php 操作webservice实例
IT独行者
PHP webservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
Windows下使用Vagrant安装linux系统
_wy_
windows vagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
更改linux的文件拥有者及用户组(chown和chgrp)
无量
c linux chgrp chown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
探索JUnit4扩展:断言语法assertThat
bijian1013
java 单元测试 assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
Netty源码学习-CompositeChannelBuffer
bylijinnan
java netty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows 查找某个目录下的所有文件 包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
改善程序代码质量的一些技巧
dcj3sjt126com
编程 PHP 重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
linux复习笔记之bash shell (2) bash基础
eksliang
bash bash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
HoverTree.Model.ArticleSelect类的作用
hvt
Web .net C# hovertree asp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
apache的math库中的回归——regression(翻译)
lvdccyb
Math apache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
云计算平台最重要的五项技术
sumapp
云计算 云平台 智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite