object

JDK自带动态代理代码逻辑实现

拈花ヽ惹草 提交于 2020-01-25 01:50:53
实现一个计算器工具,定义IMathCalcultor接口,只开发求和,求差两个功能接口。需求:在每次使用方法前后 都要输出日志内容。这里利用JDK动态代理方式之一 -- 通过实现invocationHandle接口来实现这个需求,闲话不多说直接上代码。 package com.travelsky.falcon.controller.testPackage; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; public class MyProxy { public static void main(String[] args){ //创建被代理的对象,注意被代理的对象是不可变对象 所以用final修饰 final IMathCalcultor math = new MathCalcultorImpl(); //创建一个代理对象(入参说明:1.类加载器要与被代理的对象类加载器一致;2.被代理对象的接口;3.实现InvocationHandler接口的invoke方法,通常写内部类来实现) Object newProxyInstance = Proxy

Java中的volatile

别说谁变了你拦得住时间么 提交于 2020-01-25 00:39:38
目录 可见性保证 Happens-before 保证 volatile 并不能满足所有场景 什么时候单单使用 volatile 就够了? volatile 的性能考虑 Java的关键字 volatile 用于将变量标记为“存储于主内存中”。更确切地说,对 volatile 变量的每次读操作都会直接从计算机的主存中读取,而不是从 cpu 缓存中读取;同样,每次对 volatile 变量的写操作都会直接写入到主存中,而不仅仅写入到 cpu 缓存里。 实际上,从 Java 5 开始关键字 volatile 除了能确保 volatile 变量直接从主存中进行读写,还有以下几个作用。 可见性保证 关键字 volatile 能确保数据变化在线程之间的可见性。 在多线程的应用中多个线程对 non-volatile 变量进行操作,线程在对它们进行操作的时候为了提高性能会将变量从主存复制到 cpu 缓存中。如果你的电脑包含的 cpu 不止一个, 那么每个线程可能会运行于不同的 cpu 上。这意味着,不同线程会将变量复制到不同 cpu 的缓存里。如下图: no-volatile 变量不能保证 Java 虚拟机(JVM)何时从主存中将数据读入cpu 缓存,也不能保证何时将数据从 cpu 缓存写入到主存中。这会带来一些问题,我将在下面解释。 想象一个场景,两个或两个以上线程可访问同一个共享对象

ES5语法

你离开我真会死。 提交于 2020-01-25 00:23:14
ES5新语法主要是体现在Object和、Array操作,同时涉及到JSON、 Function、Date 和 String类型上。 1.Object   ES5最大的特点是对象扩展很多方法。 新建对象: create ( 新建一个"干净"的对象,这里的“干净”指的是没有原型链。) 语法: Object .create( proto, [ propertiesObject ]); proto是一个对象,作为新创建对象的原型。 如果 proto 参数不是 null 或一个对象值,则抛出一个 TypeError 异常。null表示没有原型对象(这样就创建了一个”干净的对象”) propertiesObject 是一个对, 它有4个值和两个函数,分别是: value : 设置属性的值 writable : 布尔值,设置属性是否可以被重写,默认属性值为false(不能被重写) enumerable : 布尔值,设置属性是否可以被枚举,默认属性值为false(不能被枚举) configurable : 布尔值,设置属性是否可以被删除,默认属性值为false(不能被删除) 两个函数: get : 函数,设置属性返回结果 set : 函数,有一个参数 来看看具体的用法: writable: var account = Object.create(Object.prototype,{ type: {

ES6中Object.assign() 方法

随声附和 提交于 2020-01-25 00:22:28
ES6中Object.assign() 方法 1. 对象合并 Object.assign 方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象上。 如下代码演示: var target = {a: 0}; var source1 = {b: 1}; var source2 = {c: 2}; Object.assign(target, source1, source2); console.log(target); // 输出 {a: 0, b: 1, c: 2} 1-1 如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性。 如下代码: var target = {a: 0, b: 1}; var source1 = {a:1, b: 2, c:3}; var source2 = {c:5}; Object.assign(target, source1, source2); console.log(target); // 输出 {a: 1, b: 2, c: 5} 1-2 如果只有一个target(目标对象),Object.assign会直接返回该对象,如下代码: var o = {a: 0}; Object.assign(o); console.log(o); // {a: 0} 1-3 如果该参数不是对象,则会先转成对象

视频标签object遮挡div

匆匆过客 提交于 2020-01-24 23:09:33
video 视频标签遮挡div 视频标签遮挡div 1.问题原因 在项目开发的过程中,用到播放视频,在IE下出现了div拖拽到控件时被object遮挡的问题。 从网上找了很多解决方案,最后都是归结为用iframe 遮挡 object,然后div在定位到iframe 上面。 但是出现播放视频的时候,iframe 还是无法覆盖到上。 后面查找windows media playe 属性,发现windowlessvideo属性 设置1就能实现div遮挡object 1:则设置成无窗口模式,视频可直接显示在你指定的区域,上面可以叠加文字或其他效果 0:显示完整的media player窗口 `<param name="windowlessVideo" value="1"/>` 来源: CSDN 作者: weixin_43839438 链接: https://blog.csdn.net/weixin_43839438/article/details/103896429

如何查看crontab的日志记录

六月ゝ 毕业季﹏ 提交于 2020-01-24 22:54:12
在Unix和类Unix的操作系统之中,crontab命令常用于设置周期性被执行的指令,也可以理解为设置定时任务。 crontab中的定时任务有时候没有成功执行,什么原因呢?这时就需要去日志里去分析一下了,那该如何查看crontab的日志记录呢? 1. linux 看 /var/log/cron.log这个文件就可以,可以用tail -f /var/log/cron.log观察 2. unix 在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。 3. mail任务 在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。 有朋友问到关于linux的crontab不知道是否到底执行了没有,也算写过一些基本备份的shell脚本,结合自己的实际生产环境简单讲述下如何通过cron执行的日志来分析crontab是否正确执行。 例如服务器下oracle用户有如下的计划任务 [oracle@localhost6 ~]$ crontab -l 00 1 * * 0 /home/oracle/backup/hollyipcc.sh 00 1 1 * * /home/oracle

What is a difference between an object literal and a class with values in constructor in javascript?

落爺英雄遲暮 提交于 2020-01-24 21:49:11
问题 I've been working on end to end test in testcafe and in their documentation I found following solution for Page Model: class Page { constructor () { this.nameInput = Selector('#developer-name'); } } export default new Page(); I've been doing some research and I cannot get my head around why it is not resolved with an object literal: export const Page = { nameInput: Selector('#developer-name'); } What are consequences of using each of them? 回答1: The difference is significant but fundamentally

Python基础教程(第三版)读书笔记(1)

萝らか妹 提交于 2020-01-24 19:38:07
文章目录 绪论 绪论 看完吴恩达老师的机器学习视频后,不知道下一步该学什么。不知道怎么去实现,看pytorch教程。感觉还是少一点什么。可能是基础太差了。因为并没有python编程基础,直接学框架感觉就是不对劲。现在开始系统学习python,希望python好好对我。 基础知识: 函数: Python函数类似于数学函数,它们可能接受参数,并返回结果。 模块: 模块是扩展,可通过导入它们来扩展Python的功能。 import math # 引入math模块 from math import sqrt # 引入math模块的函数sqrt 本章学习到的新函数: 函数 描述 abs(number) 返回指定数的绝对值 bytes(string, encoding[, errors]) 对指定的字符串进行编码,并以指定的方式处理错误 cmath.sqrt(number) 返回平方根;可用于负数 float(object) 将字符串或数字转换为浮点数 help([object]) 提供交互式帮助 input(prompt) 以字符串的方式获取用户输入 int(object) 将字符串或数转换为整数 math.ceil(number) 以浮点数的方式返回向上圆整的结果 math.floor(number) 以浮点数的方式返回向下圆整的结果 math.sqrt(number) 返回平方根

Access <object> data with JavaScript

余生颓废 提交于 2020-01-24 19:26:07
问题 I have an <object> tag like this: <object id="text" data="file.txt"></object> And I can get the element like this: var text = document.getElementById("text"); Now, how do I get the content of the text file? The purpose of this is to: avoid having to make an XMLHttpRequest; avoid having text data in the form of a constant in code; keep a simple plaintext file in it's original form, without JSON or special formatting, to be accessed by code and become a string variable. In the same fashion you

Split object into chunks

若如初见. 提交于 2020-01-24 19:16:32
问题 I have an object: var object = { '232510350': 672, '232510352': 672, '232510353': 672, '232510356': 672, '232510358': 672, '232510359': 672, '232510360': 672 } And I want to split it into chunks of a given size like this: var chunks = [ {'232510350': 672, '232510352': 672, '232510353': 672}, {'232510356': 672, '232510358': 672, '232510359': 672}, {'232510360': 672}] I'm kinda stuck here since I can't use slice for this Here's how I did it but it's ugly. I just wanted to see how to do it the