请稍等ManixChen正在解析过程中………



欢迎来到 技术栈



Picture

Vue Caleder

layout: post
title:  vue element Calendar日历 
tags: elementUi Calendar日历
categories: elementUi Calendar
Picture

Nvm Nodejs

layout: post
title:  nvm丝滑切换nodejs
tags: nvm nodejs
categories: nvm

####  nvm安装的前提

现代化web开发避免不了各种版本的nodejs混用,因为开源项目的依赖版本参差不齐,取决于开发者的版本,如果下载后本地的环境有所区别,或多或少编译是难以一次性通过,这时候就适合用nodejs的版本管理工具nvm了,如果个人学习的话或者公司多年一直稳定版本还有从来不需要学习开源项目的话那一般也用不上这个工具,基本上这种情况也比较少

对于nvm安装切记一定不要提前安装官网的任何一个版本nodejs,可能造成后期干扰nvm的局部各种版本的nodejs测试发现仅需安装选择目录即可,环境变量nvm安装工具会自动配置,配置好了可以修改nodejs的位置,

Picture

Display copy

layout: post
title:  布局的常用方法
tags: css 布局
categories: css
Picture

Vue2 优化

layout: post
title:  sync修饰符的作用
tags: vue 双向绑定
categories: vue
Picture

Vue Drag

layout: post
title:  sync修饰符的作用
tags: vue VueDraggablePlus
categories: vue
Picture

Node Npm Nvm

layout: post
title:  最近项目出现多版本node和npm兼容的常见问题
tags: node npm webpack vite
categories:node npm
Picture

Scss语法

layout: post
title:  scss使用的常用方法
tags: css scss
categories: scss
Picture

Wecat Tabbar

layout: post
title:  微信小程序自定义tabbar
tags: 小程序 原生微信开发
categories: 微信小程序开发
Picture

Eletron

layout: post
title: 桌面软件开发 electron
tags: 桌面软件开发 electron
categories: 桌面软件开发 electron

方式1:进入Git命令行窗口,然后输入如下命令。

Picture

Wecat

layout: post
title:  微信小程序自定义导航栏
tags: 小程序 原生微信开发
categories: 微信小程序开发
Picture

Vite

layout: post
title:  Vite
tags: Vite package 
categories:Vite
Picture

javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板
Picture

免费激活Idea的热部署插件JRebel,解决连接失败报错,提供下载地址

免费激活Idea之热部署插件JRebel,解决连接失败报错

JRebel是一个实用的插件,它可以让你在不重启服务器的情况下,修改Java程序并即时生效。相信大家都有这样的经历:每次修改代码后都需要重新编译、打包、部署,然后重启服务器,这个过程非常耗时且繁琐。但是,如果你使用了JRebel,你就可以摆脱这些烦恼,轻松享受修改代码后立即生效的快感!

Picture

javascript webpack配置

  1. 题目1:数组查找指定和的下标 ``` 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
Picture

javascript webpack配置

1.前端模块化打包初识 commonjs语法形式

> user.js
const login = function(formData){
  console.log("logoing")
  return {}
}
const register = function(formData){
  console.log("register")
}
module.exports = {
  login:login,
  register:register
}
>login_index.js  引入
const user =require('./user.js')
const resp = user.login({})
Picture

javascript开启网页录制功能ES6语法 async

var body = document.body;    
body.addEventListener("click",async function(){        
    var stream = await navigator.mediaDevices.getDisplayMedia({video: true});         
    var mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ?"video/webm; codecs=vp9" :"video/webm";        
    var mediaRecorder = new MediaRecorder(stream, {mimeType: mime});         
    //录制        
     var chunks = [];        
      mediaRecorder.addEventListener('dataavailable', function(e) {chunks.push(e.data)})         
       //停止        
       mediaRecorder.addEventListener('stop', function(){            
           var blob = new Blob(chunks, {type: chunks[0].type});            
           var url = URL.createObjectURL(blob);            
           var a = document.createElement('a');            
           a.href = url;            
           a.download = 'video.webm';            
           a.click();       
       })       
    //手动启动       
    mediaRecorder.start()   
});
Picture

vue常用的知识点

  1. ** 如何检测对象变化? ** 由于 JavaScript特性的限制,Vue.js不能检测到对象属性的添加或删除。因为Vue.js在初始化时将属性转化为 getter/setter,所以属性必须在data对象中定义,才能在初始化时让Vue.js转换它并让它响应,例如以下代码
Picture

javascript ES6重点语法记录

** 常用的API *** 一、下面是 Proxy 支持的拦截操作一览,一共 13 种。 ``` get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy[‘foo’]。 set(target, propKey, value, receiver):拦截对象属性的设置,比如proxy.foo = v或proxy[‘foo’] = v,返回一个布尔值。 has(target, propKey):拦截propKey in proxy的操作,返回一个布尔值。 deleteProperty(target, propKey):拦截delete proxy[propKey]的操作,返回一个布尔值。 ownKeys(target):拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for…in循环,返回一个数组。该方法返回目标对象所有自身的属性的属性名,而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。 getOwnPropertyDescriptor(target, propKey):拦截Object.getOwnPropertyDescriptor(proxy, propKey),返回属性的描述对象。 defineProperty(target, propKey, propDesc):拦截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一个布尔值。 preventExtensions(target):拦截Object.preventExtensions(proxy),返回一个布尔值。 getPrototypeOf(target):拦截Object.getPrototypeOf(proxy),返回一个对象。 isExtensible(target):拦截Object.isExtensible(proxy),返回一个布尔值。 setPrototypeOf(target, proto):拦截Object.setPrototypeOf(proxy, proto),返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。 apply(target, object, args):拦截 Proxy 实例作为函数调用的操作,比如proxy(…args)、proxy.call(object, …args)、proxy.apply(…)。 construct(target, args):拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(…args)。

Picture

Es5 For

layout: post
title:  javascript ES5事件委托
tags: javascript ES5
categories: ES5
Picture

Jekyll 主题抽离定制

其实挺简单 _config.yml 全局配置文件 _posts 放置博客文章的文件夹 img 存放图片的文件夹

Picture

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

Picture

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Picture

github本地关联远程秘钥

### github本地关联远程秘钥 1、 进入到你当前用户的根目录的.ssh文件夹下。如我的地址是C:\Users\manixchen.ssh

Picture

Mardown图片网址表格等常用语法简记

### markdown语法

  1. 超链接
    [链接名称](链接地址)
    或者
    <链接地址>
    

    这是一个链接 新浪新闻

https://news.sina.com.cn/

Picture

markdown自动生成github博客(前篇)

  1. 为什么我要用这么不知名的语言写这个系统
    • 好奇心驱使,热爱新鲜技术,希望避免重复性劳动
    • 复用率高,每天写写markdown日记便可以同步到github
    • 学的东西都来自开源,总的回馈点什么
Picture

javascript webpack经常用的插件包

一、 ** webpack安装配置 ,纯手动,官网提供了脚本这里不做介绍**

  1. npm install nodemon -g nodemon可以替代node 来观察代码更改并自动 启动关闭程序 全局安装即可, 后续使用命令nodemon server.is 替代 npde server.js
Picture

Vue3 Pinia

layout: post
title:  pinia多种使用方法
tags: pinia
categories:pinia
Picture

Jianrong

layout: post
title:  css兼容问题
tags: css 兼容
categories:css 兼容
Picture

javascript vite构建工具入门到上手

** 初始化 **

npm

npm init vite@latest ​

yarn

yarn create vite ​

pnpm

pnpm create vite

Picture

javascript vue3 props 验证属性

``` Props管理 Props管理对Vue组件至关重要,因为它可以以不同的方式创建。您还可以验证Prop、创建多个Prop并根据需要修改它们。

Picture

Ngrok Ip

layout: post
title:  ngrok免费实现内网穿透
tags: ngrok 内网穿透
categories:ngrok 内网穿透
Picture

Jquery 3

layout: post
title:  jquery
tags: javascript jquery 
categories:jquery
Picture

Promise

layout: post
title:  Promise
tags: javascript Promise 
categories:Ajax Promise 
Picture

javascript css3常用属性

CSS允许文本内容换行显示的方法有: 1.使用white-space属性:white-space属性可以控制文本内容的换行显示, 它有三个值,分别是normal、nowrap和pre,normal表示换行显示,nowrap表示不换行显示,pre表示按照原始格式显示,也就是按照原始文本中的换行符进行换行显示。 2.使用word-wrap属性:word-wrap属性可以控制文本内容的换行显示, 它有两个值,分别是normal和break-word,normal表示按照原始文本中的换行符进行换行显示,break-word表示在文本内容超出容器宽度时,会自动换行显示。 3.使用word-break属性:word-break属性可以控制文本内容的换行显示,它有三个值, 分别是normal、break-all和keep-all,normal表示按照原始文本中的换行符进行换行显示,break-all表示在文本内容超出容器宽度时,会自动换行显示,keep-all表示在文本内容超出容器宽度时,会自动换行显示,但是会保留单词的完整性。

Picture

Mobilejianrong

layout: post
title: 移动端兼容
tags: 移动端兼容
categories: 移动端兼容
Picture

Ajax

layout: post
title:  ajax 
tags: javascript ajax 
categories: javascript ajax 
Picture

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

Picture

windows下将服务文件一键打包成应用程序自动执行

在这个容器化包管理时代,前端打包工具等满天飞的时代想必你也会比较感兴趣这个话题(Webpack,Rollup,RequireJS,browserify)

很多小伙伴估计都没有听说过这个名词,打包工具其实就是将做好的程序用用户可以看到的方式制作成一个对应操作系统下的可执行应用,Windows下面必然就是打包成 .exe为后缀的,说起来高大上,其实就是一个难者亦易的事情,具体你看我怎么操作的就知道的

Picture

VUE3封装的一个功能

话不多说直接上代码,自定义控件管理音乐播放,同样原理可以实现播放器状态,进度条都可以,写代码就是需要思路和反复的锤炼,不妨试试手

Picture

基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

Picture

RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

Picture

Servlet乱码分析

我们知道,web浏览器会将form中的内容打包成HTTP请求体,然后发送到服务端,服务端对请求体解析后可以得到传递的数据。这当中包含两个过程:encodedecode

Picture

spring security 探秘

概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 概述 Filter HTTP FilterChain FilterSecurityInterceptor AuthenticationManager AccessDecisionManager SecurityMetadataSource本文...
Picture

Bean Validation

BeanValidation 可以帮助开发者方便地对数据进行校验,但它只是一个标准,只有一套接口,要想使用它的功能必须选择一种实现,hibernate-validator是个不错的选择

Picture

Java中用js解析json

在java中如何解析json?fastjson?jackson?那未免太无趣了

Picture

SQL 拼接

在java中进行SQL拼接是一件无比痛苦的工作,这是由于需要通过判断参数动态生成SQL

Picture

DIY的 ajax 框架

话不多说,直接上源码,用了传说中的伪面向对象写法

Picture

JS 闭包

在JS中,当内部的方法被其他对象引用,如果内部的方法使用了外部方法的变量,将造成外部方法无法释放,变量将被保持,此时将形成闭包。

Picture

WebService

WSDLdefinitions 为根节点,属性为 name:WS 名称,默认为“实现类 + Service” targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点 types:描述了 WS 中所涉及的数据类型 portType:定义了 WS 接口名称portType.name(endpointInterface默认为“WS 实现类所实现的接口”),及其操作名称,以及每个操作的输入与输出消息 message:对相关消息进行了定义(供 types 与 portType 使用) binding:提供了对...
Picture

Java8 新特性

#1 语言新特性##1.1 Lambda自动推测形参类型eArrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );指定形参类型eArrays.asList( "a", "b", "d" ).forEach( ( String e ) -> System.out.println( e ) );方法体可以用{}包裹Arrays.asList( "a", "b", "d" ).forEach( e -> { System.out.print( e ); System.out.pr...
Picture

Java Concurrent

线程拥有通过程序运行的独立的并发路径,并且每个线程都有自己的程序计数器,称为堆栈和本地变量。线程存在于进程中,它们与同一进程内的其他线程共享内存、文件句柄以及进程状态。

Picture

八种排序

##1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/** * 形象描述:踢馆 * 直接插入排序(从小到大) * @param src 待排序的数组 */public void straight_insertion_sort(int[] src){ int tmp; for (int i = 0; i < src.length; i++) { tmp = src[i]; int j = i...
Picture

Java虚拟机

#一、走近JAVA##第一章、走近JAVAjava技术体系###1.1 jdk1.7的主要特性G1收集器JSR-292对非JAVA语言的调用支持ARM指令集?Sparc指令集?新语法:原生二进制(0b开头),switch支持字符串,”<>”操作符,异常处理改进,简化变长参数方法调用,面向资源的try-catch-finally多核并行:java.util.concurrent.forkjoinopenJdk子项目Sumatra:为java提供使用GPU、APU运算能力的工具java并行框架:hadoop MapReduceScala,Erlang,Clojure天生具备并行计...
Picture

Effective Java

#一 创建和销毁对象##1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能##2.遇到多个构造器参数时要考虑用构建器构建器优势:1.重叠构造器代码冗余2.JavaBean模式阻止了将类做成不可变的可能3.builder可以进行参数检查4.无论创建多少个对象,builder只需要一个,且可以在创建不同对象时进行调整,或者自动填充某些域 。不足:创建对象前需要先创建builder##3...
Picture

SSH

##登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host##过程 远程主机接收到用户的登陆请求,把自己的公钥发给用户 用户使用这个公钥,将密码加密后发回来 远程主机用自己的私钥,解密登陆密码,如果密码正确,就同意用户登陆 此处如果有攻击者截取了用户请求,再将自己的公钥发送给用户,然后就可以用自己的私钥解密出用户的私密信息,这就是中间人攻击 应对的方法:用户首次连接远程主机时,远程主机将发送一段128位长的公钥指纹,用户需要自行与远程主机网站发布的...
Picture

超类中的泛型

为了减少工作量,开发者往往喜欢将相同的特性放入超类,通过继承实现代码共享

Picture

Flex

#产品 Adobe® Flex™ SDK Adobe® Flex™ Builder™ Adobe® Flex™ Data Services Adobe® Flex™ Charting #Flex基础##应用程序模型用容器(如Box)控件(如Button)来描述用户的操作界面##MVC模型 模型/Model 组件封装了数据和与数据相关的行为。 视图/View 组件定义了应用程序的用户界面。 控制器/Controller 组件则负责处理程序中的数据连接。 ##Flex 编程模型Flex 包含了Fle...
Picture

Custom Fileupload

本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。#HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有一个功能,就是完整地打印整个 HTTP 请求体。public class Server { private ServerSocket serverSocket; public Server() throws IOException{ serverSo...
Picture

可重入锁

Java 中的锁是可重入的,当线程试图获得它自己占有的锁时,请求会成功。

Picture

IP详细介绍-类型分类

#分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一个网段主机号全部为1的ip代表广播地址,应用程序可以通过这个ip将信息发送到该网段下的所有主机#子网掩码IP寻址时还需用到子网掩码,子网掩码与IP等长,由连续的1组成ip中被子网掩码掩去(对ip进行与运算)的部分将被视为网络号,剩余部分将被视为主机号如需要划分5个子网,其二进制...
Picture

XML使用语法以及注意事项

XML 文档可以包含非 ASCII 字符,为了避免错误,需要规定 XML 编码,或者将 XML 文档存为 Unicode,两者需要保持一致。必须包含根元素,该元素是所有其他元素的父元素。所有元素都必须有关闭标签对大小写敏感属性值须加引号,如果属性本身包含引号,就用单引号包围属性< 和 & 是非法的,用实体引用代替文档中的空格不会被删节,而html只会保留1个XML以 LF 存储换行名称不能以数字或者标点符号或“xml”(或者 XML、Xml)开始,不能包含空格,避免-.:字符元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。Internet Explorer...
Picture

为什么要用补码表示负数

抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分应当为 500~999,我们暂时把这些表示负数的数字成为对照数字。验证一下,18 - 5 = 18 + 995 = 1013 = 13有没有一种计算方法可以方便地找出-5与995的关系呢?有,那就是999 - 5 + 1将这个规律推及到二进制中假设二进制数只有8位,那么8个1代表...
基础知识-设计模式与原则

设计模式的定义:在某情境下,针对某问题的某种解决方案。但是满足此定义的方案并不一定是设计模式,设计模式要求解决方案必须是可复用的。 设计模式的作用大体上是:优化结构,消除依赖,将面向过程转为面向对象。按照功能,一般可以将设计模式分为创建型行为型结构型三大类。 本文将列举这些设计模式,并对每个设计模式进行简要描述,描述格式为:名称,定义,案例,适用性,结构,效果,应用,相关。

XML使用语法以及注意事项
XML 文档可以包含非 ASCII 字符,为了避免错误,需要规定 XML 编码,或者将 XML 文档存为 Unicode,两者需要保持一致。必须包含根元素,该元素是所有其他元素的父元素。所有元素都必须有关闭标签对大小写敏感属性值须加引号,如果属性本身包含引号,就用单引号包围属性< 和 & 是非法的,用实体引用代替文档中的空格不会被删节,而html只会保留1个XML以 LF 存储换行名称不能以数字或者标点符号或“xml”(或者 XML、Xml)开始,不能包含空格,避免-.:字符元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。Internet Explorer...
为什么要用补码表示负数
抛开二进制不谈,我们先来看看10进制假设世界上没有负号且数字最大只有3位,我们要把 0~999 分成两部分,一部分表示负数,一部分表示正数,而且不影响他们的运算规律,应当如何去做?首先,最大的负数加上一等于零,那么用999表示最大的负数再合适不过,现在需要正负数各一半,那么正数部分应当为 0 ~ 499,负数部分应当为 500~999,我们暂时把这些表示负数的数字成为对照数字。验证一下,18 - 5 = 18 + 995 = 1013 = 13有没有一种计算方法可以方便地找出-5与995的关系呢?有,那就是999 - 5 + 1将这个规律推及到二进制中假设二进制数只有8位,那么8个1代表...
IP详细介绍-类型分类
#分类IP通过地址开头判断类型,将以 0,10,110 开头的地址分为ABC三类将ip转换成十进制后A类地址第一个字节在 0 - 127 之间,B类地址第一个字节在 128 - 191 之间C类地址第一个字节在 192 - 223 之间然后剩下的位被分为网络号与主机号,主机有两个特殊的值:主机号全部为0的ip代表一个网段主机号全部为1的ip代表广播地址,应用程序可以通过这个ip将信息发送到该网段下的所有主机#子网掩码IP寻址时还需用到子网掩码,子网掩码与IP等长,由连续的1组成ip中被子网掩码掩去(对ip进行与运算)的部分将被视为网络号,剩余部分将被视为主机号如需要划分5个子网,其二进制...
Java8 新特性
#1 语言新特性##1.1 Lambda自动推测形参类型eArrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) );指定形参类型eArrays.asList( "a", "b", "d" ).forEach( ( String e ) -> System.out.println( e ) );方法体可以用{}包裹Arrays.asList( "a", "b", "d" ).forEach( e -> { System.out.print( e ); System.out.pr...
Java虚拟机
#一、走近JAVA##第一章、走近JAVAjava技术体系###1.1 jdk1.7的主要特性G1收集器JSR-292对非JAVA语言的调用支持ARM指令集?Sparc指令集?新语法:原生二进制(0b开头),switch支持字符串,”<>”操作符,异常处理改进,简化变长参数方法调用,面向资源的try-catch-finally多核并行:java.util.concurrent.forkjoinopenJdk子项目Sumatra:为java提供使用GPU、APU运算能力的工具java并行框架:hadoop MapReduceScala,Erlang,Clojure天生具备并行计...
Effective Java
#一 创建和销毁对象##1.考虑用静态工厂方法代替构造器静态工厂方法的优势:1.有名称,可以见名知义了解获取对象的特点2.不必每次调用时都创建一个对象3.可以返回原类型的任何子类型对象4.创建参数化类型实例时,可以使代码更简洁(右边无需再写一遍)5.不可变对象可以进行缓存,以提升性能##2.遇到多个构造器参数时要考虑用构建器构建器优势:1.重叠构造器代码冗余2.JavaBean模式阻止了将类做成不可变的可能3.builder可以进行参数检查4.无论创建多少个对象,builder只需要一个,且可以在创建不同对象时进行调整,或者自动填充某些域 。不足:创建对象前需要先创建builder##3...
WebService
WSDLdefinitions 为根节点,属性为 name:WS 名称,默认为“实现类 + Service” targetNamespace:WS 目标命名空间,默认为“WS 实现类对应包名倒排后构成的地址”definitions的5个子节点 types:描述了 WS 中所涉及的数据类型 portType:定义了 WS 接口名称portType.name(endpointInterface默认为“WS 实现类所实现的接口”),及其操作名称,以及每个操作的输入与输出消息 message:对相关消息进行了定义(供 types 与 portType 使用) binding:提供了对...
Flex
#产品 Adobe® Flex™ SDK Adobe® Flex™ Builder™ Adobe® Flex™ Data Services Adobe® Flex™ Charting #Flex基础##应用程序模型用容器(如Box)控件(如Button)来描述用户的操作界面##MVC模型 模型/Model 组件封装了数据和与数据相关的行为。 视图/View 组件定义了应用程序的用户界面。 控制器/Controller 组件则负责处理程序中的数据连接。 ##Flex 编程模型Flex 包含了Fle...
Custom Fileupload
本文的目的是简要说明如何编写一个文件上传组件,使他的功能类似 commons-fileupload, 并在结尾处提供了完整代码的获取方式。#HTTP本文讨论的是基于 HTTP 协议的文件上传,下面先来看看 HTTP 请求的真面目。首先,用 JavaSe 类库中的 Socket 搭建一个超简单的服务器,这个服务器只有一个功能,就是完整地打印整个 HTTP 请求体。public class Server { private ServerSocket serverSocket; public Server() throws IOException{ serverSo...
RMI

Java RMI 指的是远程方法调用 (Remote Method Invocation)。RMI能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法, 其威力体现在它强大的开发分布式网络应用的能力上,它可以被看作是RPC的Java版本。

spring security 探秘
概述Spring Security这是一种基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术。 概述 Filter HTTP FilterChain FilterSecurityInterceptor AuthenticationManager AccessDecisionManager SecurityMetadataSource本文...
SSH
##登陆-p指定主机的端口$ ssh -p port user@host默认端口为22$ ssh user@host默认使用本机用户名$ ssh host##过程 远程主机接收到用户的登陆请求,把自己的公钥发给用户 用户使用这个公钥,将密码加密后发回来 远程主机用自己的私钥,解密登陆密码,如果密码正确,就同意用户登陆 此处如果有攻击者截取了用户请求,再将自己的公钥发送给用户,然后就可以用自己的私钥解密出用户的私密信息,这就是中间人攻击 应对的方法:用户首次连接远程主机时,远程主机将发送一段128位长的公钥指纹,用户需要自行与远程主机网站发布的...
八种排序
##1.直接插入排序基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。/** * 形象描述:踢馆 * 直接插入排序(从小到大) * @param src 待排序的数组 */public void straight_insertion_sort(int[] src){ int tmp; for (int i = 0; i < src.length; i++) { tmp = src[i]; int j = i...
windows下将服务文件一键打包成应用程序自动执行

在这个容器化包管理时代,前端打包工具等满天飞的时代想必你也会比较感兴趣这个话题(Webpack,Rollup,RequireJS,browserify)

很多小伙伴估计都没有听说过这个名词,打包工具其实就是将做好的程序用用户可以看到的方式制作成一个对应操作系统下的可执行应用,Windows下面必然就是打包成 .exe为后缀的,说起来高大上,其实就是一个难者亦易的事情,具体你看我怎么操作的就知道的

javascript开启网页录制功能ES6语法 async
var body = document.body;    
body.addEventListener("click",async function(){        
    var stream = await navigator.mediaDevices.getDisplayMedia({video: true});         
    var mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ?"video/webm; codecs=vp9" :"video/webm";        
    var mediaRecorder = new MediaRecorder(stream, {mimeType: mime});         
    //录制        
     var chunks = [];        
      mediaRecorder.addEventListener('dataavailable', function(e) {chunks.push(e.data)})         
       //停止        
       mediaRecorder.addEventListener('stop', function(){            
           var blob = new Blob(chunks, {type: chunks[0].type});            
           var url = URL.createObjectURL(blob);            
           var a = document.createElement('a');            
           a.href = url;            
           a.download = 'video.webm';            
           a.click();       
       })       
    //手动启动       
    mediaRecorder.start()   
});
javascript ES6重点语法记录

** 常用的API *** 一、下面是 Proxy 支持的拦截操作一览,一共 13 种。 ``` get(target, propKey, receiver):拦截对象属性的读取,比如proxy.foo和proxy[‘foo’]。 set(target, propKey, value, receiver):拦截对象属性的设置,比如proxy.foo = v或proxy[‘foo’] = v,返回一个布尔值。 has(target, propKey):拦截propKey in proxy的操作,返回一个布尔值。 deleteProperty(target, propKey):拦截delete proxy[propKey]的操作,返回一个布尔值。 ownKeys(target):拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for…in循环,返回一个数组。该方法返回目标对象所有自身的属性的属性名,而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。 getOwnPropertyDescriptor(target, propKey):拦截Object.getOwnPropertyDescriptor(proxy, propKey),返回属性的描述对象。 defineProperty(target, propKey, propDesc):拦截Object.defineProperty(proxy, propKey, propDesc)、Object.defineProperties(proxy, propDescs),返回一个布尔值。 preventExtensions(target):拦截Object.preventExtensions(proxy),返回一个布尔值。 getPrototypeOf(target):拦截Object.getPrototypeOf(proxy),返回一个对象。 isExtensible(target):拦截Object.isExtensible(proxy),返回一个布尔值。 setPrototypeOf(target, proto):拦截Object.setPrototypeOf(proxy, proto),返回一个布尔值。如果目标对象是函数,那么还有两种额外操作可以拦截。 apply(target, object, args):拦截 Proxy 实例作为函数调用的操作,比如proxy(…args)、proxy.call(object, …args)、proxy.apply(…)。 construct(target, args):拦截 Proxy 实例作为构造函数调用的操作,比如new proxy(…args)。

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

javascript lodashjs常见对象的所有操作

* 简单介绍 *** Lodash 能够大幅度提高前端 JavaScript 编程的效率和可读性,使得代码编写更加快捷、简洁、易懂。如果你还没有使用过 Lodash,建议尝试使用它来优化你的项目,提高开发效率。向大家介绍或简单的展示一下它的能力,或许能够吸引到你。Lodash 是一个流行的 JavaScript 实用工具库,提供了许多常用的函数和工具,能够方便地处理集合、字符串、数值、函数等多种数据类型,减少编写重复代码的时间和精力。Lodash 的 API 设计与 ES6 的新特性相似,同时兼容了更早的浏览器版本。Lodash 支持模块化加载,可以通过 npm 或在浏览器中直接引入来使用。 Lodash 有多达 300 多个函数,每个函数都有详细的文档和示例,能够快速地满足各种编程需求。同时,Lodash 的功能也非常完善,比如数组、对象等的操作,以及日期、数学计算、函数式编程等多方面支持。Lodash 还提供了链式调用的方式,简化操作的流程。 *** npm install lodash **

javascript css3常用属性

CSS允许文本内容换行显示的方法有: 1.使用white-space属性:white-space属性可以控制文本内容的换行显示, 它有三个值,分别是normal、nowrap和pre,normal表示换行显示,nowrap表示不换行显示,pre表示按照原始格式显示,也就是按照原始文本中的换行符进行换行显示。 2.使用word-wrap属性:word-wrap属性可以控制文本内容的换行显示, 它有两个值,分别是normal和break-word,normal表示按照原始文本中的换行符进行换行显示,break-word表示在文本内容超出容器宽度时,会自动换行显示。 3.使用word-break属性:word-break属性可以控制文本内容的换行显示,它有三个值, 分别是normal、break-all和keep-all,normal表示按照原始文本中的换行符进行换行显示,break-all表示在文本内容超出容器宽度时,会自动换行显示,keep-all表示在文本内容超出容器宽度时,会自动换行显示,但是会保留单词的完整性。

javascript vue3 props 验证属性

HTML、CSS相关 HTML5 HTML5新特性 增强了表单,input新增了一些type: color—-定义调色板 tel—–定义包含电话号码的输入域 email—定义包含email地址的输入域 search–定义搜索域 number–定义包含数值的输入域 date—-定义选取日、月、年的输入域 Video视频标签; Audio音频标签; 语义化标签;datatime-local 定义文档类型的简写 地理定位;拖放api;Canvas图形绘制;富文本Web Storage:localStorage:没有时间限制的数据存储;sessionStorage:在浏览器关闭的时候就会清除

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

Jekyll Vue3免费博客制作

起因 其实近两年使用VUE场景多起来了我就想着把手上的项目都使用Vue重构一下,这样一看,我算是一个完美主义者吧,哈哈^__^ 这个项目其实也是之前的老项目基于ryby jekyll Liquid 模板解析的一个静态博客,其实经历还挺久的这个项目,应该16年我大学那会就翻墙弄的,后面因为兴趣爱好问题,静态博客无法满足自己的需求,其实有部分也在于之前精力有限,没有一直去定制所谓的模板,其实前端还是比较重要的,直接很大程度影响用户体验,所以深感前端重要性,也是打算把这个博客简单重构一下,奈何本人文化有限和能力有限,缺乏一个审美到位的UI合伙人,我的博客就一直搁浅,最近也是逼了自己一把,过年这几天就在家写了下,自己抄,哦,还是说借鉴了一部分网站的样式主题简单定制了下,其实这不是最关键的,关键的是你现在可以直接访问我的博客简单看看效果,下面是我简单重构的记录

vue常用的知识点
  1. ** 如何检测对象变化? ** 由于 JavaScript特性的限制,Vue.js不能检测到对象属性的添加或删除。因为Vue.js在初始化时将属性转化为 getter/setter,所以属性必须在data对象中定义,才能在初始化时让Vue.js转换它并让它响应,例如以下代码
javascript 脚手架制作

** 通用脚手架 **

本脚手架主要方便个人开发,常用的项目脚手架个模板自己封装便于使用,在企业中节约重复造轮子的时间, 包含VUE脚手架常用的插件功能,其实就是提升复用率,目前完成了VUE3的PC端模版

npm i manix-sun-cli
manix-sun-cli create <project name>
根据需求选择即可
  1. vue3 PC端后台模板
  2. vue2 PC端后台模板
  3. vue3 移动端模板
  4. vue2 移动端模板
  5. 微信小程序模板
免费激活Idea的热部署插件JRebel,解决连接失败报错,提供下载地址
免费激活Idea之热部署插件JRebel,解决连接失败报错

JRebel是一个实用的插件,它可以让你在不重启服务器的情况下,修改Java程序并即时生效。相信大家都有这样的经历:每次修改代码后都需要重新编译、打包、部署,然后重启服务器,这个过程非常耗时且繁琐。但是,如果你使用了JRebel,你就可以摆脱这些烦恼,轻松享受修改代码后立即生效的快感!

免费激活Idea的热部署插件JRebel,解决连接失败报错,提供下载地址
免费激活Idea之热部署插件JRebel,解决连接失败报错

JRebel是一个实用的插件,它可以让你在不重启服务器的情况下,修改Java程序并即时生效。相信大家都有这样的经历:每次修改代码后都需要重新编译、打包、部署,然后重启服务器,这个过程非常耗时且繁琐。但是,如果你使用了JRebel,你就可以摆脱这些烦恼,轻松享受修改代码后立即生效的快感!

免费激活Idea的热部署插件JRebel,解决连接失败报错,提供下载地址
免费激活Idea之热部署插件JRebel,解决连接失败报错

JRebel是一个实用的插件,它可以让你在不重启服务器的情况下,修改Java程序并即时生效。相信大家都有这样的经历:每次修改代码后都需要重新编译、打包、部署,然后重启服务器,这个过程非常耗时且繁琐。但是,如果你使用了JRebel,你就可以摆脱这些烦恼,轻松享受修改代码后立即生效的快感!