源码

JS练习源码01_使用Javascript语言实现表单交互

南楼画角 提交于 2020-02-26 14:33:51
问题描述: 界面: 交互: 源码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> p { font-family : 宋体 ; font-size : 20px ; font-weight : bold ; } input,select { border-color : #87CEFA ; border-width : 1px ; padding : 2px ; } </style> <script language="javascript"> function func() { var price = parseInt ( document.myform.price.value ) ; var number = parseInt ( document.myform.number.value ) ; var str = document.myform.way_of_pay.value ; var discount =0 ; switch(str) { case "bank" : discount = 0.6 ; break ; case "phone" : discount = 0.7 ; break ; case "postpay" : discount = 0.8 ;

JS练习源码04_下拉级联框

烂漫一生 提交于 2020-02-26 14:30:58
界面: 源码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #top { background-color : #87CEFA ; } label { color : #ffffff ; } </style> <script type= "text/javascript" > var provs = new Array ( ) ; //数组,集合 provs[ '北京市' ] = [ '北京市' ] ; provs[ '上海市' ] = [ '上海市' ] ; provs[ '天津市' ] = [ '天津市' ] ; provs[ '重庆市' ] = [ '重庆市' ] ; provs[ '湖北省' ] = [ '武汉市' , '黄石市' , '宜昌市' , '洪湖市' ] ; provs[ '湖南省' ] = [ '长沙市' , '常德市' , '岳阳市' ] ; var wuyeTypes = [ '普通住宅' , '公寓' , '别墅' , '经济适用房' , '商住楼' , '写字楼' ] ; function load() { loadProvice ( ) ; loadType ( ) ; } //加载省份 function loadProvice() {

线程池源码解析

早过忘川 提交于 2020-02-26 11:55:17
前言   Java提供了若干种线程池,常用的线程池是ThreadPoolExecutor,其中用于提交任务的方法是execute以及submit方法,其中submit最终也是会调用execute方法,所以这里只介绍excute及其相关方法。   在介绍源码之前,希望读者对于线程池参数有基本了解会有助于理解代码,可以查看这篇文章 https://juejin.im/post/5cae9b42f265da03705fa152 。 主要成员变量 1 // 线程池状态量,高3未用于表示线程池运行状态,低29位用于表示线程池的线程数 2 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); 3 private static final int COUNT_BITS = Integer.SIZE - 3; 4 // 线程池最大容量,这里是程序硬性规定的最大数量,优先级高于maximumPoolSize 5 private static final int CAPACITY = (1 << COUNT_BITS) - 1; 6 7 // 线程池运行状态 8 private static final int RUNNING = -1 << COUNT_BITS; 9 private static final

Hystrix源码:配置

自闭症网瘾萝莉.ら 提交于 2020-02-26 10:33:21
1. 配置介绍 Hystrix配置主要是为command设置各个属性的值,在 Configuration 中可以看到所有的属性。 每个command的属性的名字为由四部分组成: <prefix>.command.<commandKey>.<属性名> prefix,属性前缀,默认hystrix commandKey,command名,默认是当前类名 属性名,就是上面链接中各个属性的名称,写死的 比如commandKey为test的execution.isolation.strategy属性名为hystrix.command.test.execution.isolation.strategy,这个名字一般没有什么用,但是要修改command某个属性值的时候需要知道该名字,后面会讲到。 除了commandKey,还有一个commandGroupKey,并且commandGroupKey是生成command时必填的,commandGroupKey的作用是聚合同一个group下的command数据,用于在dashboard上显示。 commandGroupKey,commandKey都相同的command,共享同一个全局配置,包括统计metric的滑动数组。 2. 两种使用方式对比 使用Hystrix主要有两种方式:加注解,继承HystrixCommand。这两种方式有各自的优缺点,对比如下

php源码中的常见宏

穿精又带淫゛_ 提交于 2020-02-26 10:07:38
先记录下php源码中常见到的一些宏,以备以后查看需要 Zend/zend_globals_macros.h: # define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v) Zend/zend_globals_macros.h: # define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v) main/php_globals.h: # define PG(v) TSRMG(core_globals_id, php_core_globals *, v) main/SAPI.h: # define SG(v) TSRMG(sapi_globals_id, sapi_globals_struct *, v) SG宏主要用于获取SAPI层范围内的全局变量 其中PG是一个宏,定义在php_globals.h中: # define PG(v) TSRMG(core_globals_id, php_core_globals *, v) 而 TSRMG 也是一个宏,定义在TSRM.h中: #define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE

LiveData源码分析

你离开我真会死。 提交于 2020-02-26 07:00:23
前言 最近的项目重构中加入LiveData框架,并且小码的 T-MVVM 也是用了LiveData框架,好不好用你试试就知道(小码口头禅),对于LiveData使用的时候并未做太多的理解,于是乎翻了翻LiveData源代码,在此做下笔记, 什么是LiveData LiveData是一个数据持有类。它具有以下特点: 数据可以被观察者订阅; 能够感知组件(Fragment、Activity、Service)的生命周期; 只有在组件出于激活状态才会通知观察者有数据更新; LiveData能为我们做什么 能够保证数据和UI统一,LiveData采用了观察者模式,LiveData是被观察者,当数据有变化时会通知UI。 减少内存泄漏,LiveData能够感知到组件的生命周期,当组件处于DESTROYED状态时,观察者对象会被清除,当Activity停止时不会导致Crash,因为组件处于非激活状态时,不会收到LiveData中数据变化的通知。 不需要额外的手动处理来响应生命周期的变化,因为LiveData能够感知组件的生命周期,所以就完全不需要在代码中告诉LiveData组件的生命周期状态。 组件和数据相关的内容能实时更新,组件在前台的时候能够实时收到数据改变的通知,当组件从后台到前台来时,LiveData能够将最新的数据通知组件,因此保证了组件中和数据相关的内容能够实时更新。 若果横竖屏切换

java源码学习---ThreadLocal

不想你离开。 提交于 2020-02-26 05:08:52
ThreadLocal 是一个线程安全副本,用于储存仅允许当前线程能访问/修改的值,不知从何时起看到了”线程安全“这种字眼就会不自觉想到性能问题,但是ThreadLocal是实现线程安全的另外一种方案"空间换时间"。 先看2个小Demo 使用ThreadLocal public class ThreadLoacalTest{ // 定义线程安全副本 private final static ThreadLocal<Integer> THREAD_NUMBER = new ThreadLocal<Integer>(); // 继承 Thread 重写 run() static class ThreadTest extends Thread{ @Override public void run() { for ( int i= 0 ; i < 3 ;i++){ // 如果 THREAD_NUMBER 为 null ,赋值 0 ,否则 +1 THREAD_NUMBER .set( THREAD_NUMBER .get() == null ? 0 : THREAD_NUMBER .get() + 1 ); // 打印信息 System. out .println(Thread. currentThread ().getName() + ":" + THREAD_NUMBER .get())

Linux软件管理 - 编译安装

只谈情不闲聊 提交于 2020-02-26 03:04:29
Linux软件管理 - 编译安装 文本关键字:Linux、软件管理、configure、make、make install 一、环境准备 很多软件下载之后是一个源码包,是不能够直接运行的,需要先进行编译安装,生成可执行程序。在进行编译时,需要先使用yum安装编译工具。 1. 核心组件 必须要安装的就是gcc(GNU Compiler Collection)GNU编译器套件,其中包含了C、C++、Objective-C、Fortran、Java、Ada、Go语言前端,也包含了对应语言的库,几乎可以满足绝大部分源码软件对编译环境的需要。 yum install gcc 安装后可解决以下问题: 2. 其他组件 在进行实际软件安装时,由于软件与软件之间可能也会存在依赖和调用关系,如:在源码编写时引入了某个类库,如果我们的系统中没有相关的类库,就会编译失败,这个时候我们只要根据报错信息安装相应的缺失类库即可,以下列出了一些常用的类库。 pcre ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE

SpringCloud之RefreshScope 源码解读

元气小坏坏 提交于 2020-02-26 03:04:12
SpringCloud之RefreshScope # @Scope 源码解读 # Scope( org.springframework.beans.factory.config.Scope )是Spring 2.0开始就有的核心的概念 RefreshScope( org.springframework.cloud.context.scope.refresh )是spring cloud提供的一种特殊的scope实现,用来实现配置、实例热加载。 Scope -> GenericScope -> RefreshScope Scope与ApplicationContext生命周期 AbstractBeanFactory#doGetBean创建Bean实例 Copy protected <T> T doGetBean (...) { final RootBeanDefinition mbd = ... if (mbd.isSingleton()) { ... } else if (mbd.isPrototype()) ... } else { String scopeName = mbd.getScope(); final Scope scope = this .scopes.get(scopeName); Object scopedInstance = scope.get