static

Are static members of a generic class different for different types in Java?

耗尽温柔 提交于 2020-01-22 22:52:27
问题 @Spence asked this Previous Question. So, how's that work in Java? Generic types are discarded at runtime in Java, so what happens to static variables of classes instantiated with different generic types? 回答1: Static members in Java can't have generic type arguments from the class that contains them. public class Gen<T> { public static T foo; // compiler error } 回答2: Static variables are shared among all the instances of that type, even of different type parameters. From the generics tutorial

Java JVM 从程序员的角度看对象初始化过程,变量加载顺序及内存分配

你说的曾经没有我的故事 提交于 2020-01-22 22:49:31
专栏原创出处: github-源笔记文件 , github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。 Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java JVM-虚拟机 一、前言 前面我们分析过 从虚拟机的角度看对象的创建与访问 。 现在我们站在程序员角度,来看一下我们定义的一个个类及类里面的成员变量是怎么初始化的,分别什么时候初始化,以及初始化顺序和内存分配。 公网上的文章写一堆代码打印一些信息进行分析,有些把语句块的加载顺序都下结论了,这种理解对于初学者来说可行,但是随着深入的学习我们应该试着从虚拟机角度去分析整个过程。 本文从字节码及类加载过程结合虚拟机内存模型进行分析,无需进行大量源码打印,愿意验证的朋友可以采用该方法进行更复杂的初始化过程分析。 首先我们统一一下概念: 类变量,表示 static 修饰的成员变量 类常量,表示 static final 修饰的基本数据类型与字符串成员变量 静态语句块,使用 static{} 包起来的语句块 实例变量,表示随着类初始化而初始化的成员变量 实例构造器语句块,使用 {} 包起来的语句块 class Father { // 类常量 public static final String STATIC_FINAL = "static-final-Father" ; // 类变量

12 webpack CopyWebpackPlugin学习

扶醉桌前 提交于 2020-01-22 22:41:02
文章目录 文章参考 安装 应用场景 参数说明 webpack.config.js 配置信息 文章参考 CopyWebpackPlugin 中文文档 安装 npm install --save-dev copy-webpack-plugin 应用场景 将一些资源(不需要file-loader处理的)拷贝到指定目录,例如static的静态资源 参数说明 属性 功能描述 参数说明 from 定义要拷贝的源文件 from:__dirname+’/src/components’ to 定义要拷贝到的目标文件夹 to:__dirname+’/dist’ toType file 或者 force 强制覆盖前面的插件 可选,默认是文件 context 可选,默认basecontext可用specific context flatten 只拷贝指定的文件 可以用模糊匹配 ignore 忽略拷贝指定的文件 可以模糊匹配 webpack.config.js 配置信息 const CopyWebpackPlugin = require ( "copy-webpack-plugin" ) ; plugins : [ new CopyWebpackPlugin ( [ // 将 static/huangbiao 文件夹下的所有文件全部打包到 工程的根目录下 { from : "static/huangbiao

831. KMP字符串(模板)

老子叫甜甜 提交于 2020-01-22 21:06:56
给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现的位置的起始下标。 输入格式 第一行输入整数N,表示字符串P的长度。 第二行输入字符串P。 第三行输入整数M,表示字符串S的长度。 第四行输入字符串S。 输出格式 共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。 数据范围 1 ≤ N ≤ 10 4 1≤N≤104 1 ≤ M ≤ 10 5 1≤M≤105 输入样例: 3 aba 5 ababa 输出样例: 0 2代码: import java.util.Scanner; public class Main{ static int m,n;//n为子串,m为父串 static int ne[]=new int[10005]; static char p[]=new char[10005]; static char s[]=new char[100005]; static void get_next(){ for(int i=2,j=0;i<=n;i++){//i从2开始,如果i=1就不匹配,那么ne[1]=0 while(j>0 &&p[i]!=p[j+1]) j=ne[j]; if(p[i]==p[j+1]) j++; ne[i]=j; } }

单例模式和多例模式(懒汉式和饿汉式)

╄→гoц情女王★ 提交于 2020-01-22 19:35:35
一、什么是单例、多例: 所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action; 二、单例模式和多例模式说明: 单例模式和多例模式属于对象模式。 单例模式的对象在整个系统中只有一份,多例模式可以有多个实例。 它们都不对外提供构造方法,即构造方法都为私有。 三、单例模式适用场景: 需要生成唯一序列的环境 需要频繁实例化然后销毁的对象。 创建对象时耗时过多或者耗资源过多,但又经常用到的对象。 方便资源相互通信的环境 四、举例 1、懒汉式 你用的时候,我再去给你创建对象 class Singleton { private static Singleton single ; private static Singleton ( ) { } public static synchronized Singleton getInstance ( ) { if ( single == null ) single = new Singleton ( ) ; return single ; } } 优点: 第一次调用才初始化,避免浪费内存 缺点: 加锁了执行效率低 2、饿汉式 启动的时候就创建了对象, class SingleObj { //私有变量 private static SingleObj

C++-Record24—静态成员变量和静态成员函数

北城以北 提交于 2020-01-22 13:06:01
目录 为什么要有"static"关键字 基本概念 举例说明 总体代码 为什么要有"static"关键字 用类可以定义很多对象,每一个对象都有属性,那请问有没有一个属性,是属于所以对象的?假设有这个属性c,是属于所有对象的,那么这个变量,就是静态成员变量,要用"static"关键字修饰。 基本概念 1 )定义静态成员变量 关键字 static 可以用于说明一个类的成员, 静态成员提供了一个同类对象的共享机制 把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员 静态成员局部于类,它不是对象成员 2)静态成员函数 静态成员函数数冠以关键字static 静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针 在类外调用静态成员函数用 “ 类名 :: ”作限定词,或通过对象调用 注意:静态成员函数中,不能使用普通变量和普通成员函数! 举例说明 先写个类BB: class BB { public: void printC() { cout<<"c:"<<c<<endl; } void AddC() { c = c + 1; } static void getC() //静态成员函数 { cout<<"c:"<<c<<endl; //请在静态成员函数中,能调用 普通成员属性 或者 普通成员函数吗? //cout<<"a:"<<a<

Access Static properties using PHP object

回眸只為那壹抹淺笑 提交于 2020-01-22 10:33:25
问题 This is with reference to Get a static property of an instance, I am a newbie and have the following code : class Foo { public static $my_static = 1; } class Bar extends Foo { } $foo = new Foo(); $boo = new Bar(); echo Foo::$my_static; // ok echo Bar::$my_static; // ok echo $foo::$my_static; // ok echo $boo::$my_static; // ok Static variables/properties are accessed only as ClassName::static_property as in C++, but it is not the case in PHP... but PHP books mostly mention the className:

Handling multiple instances of appwidget

风流意气都作罢 提交于 2020-01-22 10:29:34
问题 I have a configuration activity, a large widget provider and a small widget provider. From configuration activity i save some values in shared preferences. From large and small app widget providers i get those shared preferences. I am not able to give the app widget unique ids and i want to have different shared preferences each time i move on from configuration activity to app widget provider. How can i achieve this. 回答1: To give unique widget ids for each instances of the app widget, you

使用javap进行反编译Java枚举

旧时模样 提交于 2020-01-22 09:03:10
这是一个枚举类Day.java public enum Day { MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期天"); /** * 中文描述 */ private String desc; public String getDesc() { return desc; } /** * 私有构造方法,防止被外部调用 * @param desc */ private Day(String desc) { this.desc = desc; } } 进入到这个文件目录下编译该文件: javac -encoding UTF-8 Day.java 这时候,该目录会有一个 Day.class 编译后的字节码文件; 再执行: javap -p Day.class Compiled from "Day.java" public final class Day extends java.lang.Enum<Day> { public static final Day MONDAY; public static final Day TUESDAY; public static final Day WEDNESDAY; public

Java 可变参数

♀尐吖头ヾ 提交于 2020-01-22 07:08:55
可变参数: 1 public class TestDemo { 2 3 public static void main(String[] args) { 4 // add传递不同数量的参数 5 System.out.println(add(new int [] {1,2,3,4,5,6})) ; 6 System.out.println(add(new int [] {232,3,45})) ; 7 } 8 /** 9 * 实现任意多个的整形数据的相加操作 10 * @param data 由于要接收多个整形数据,所以使用数据形式完成接受 11 * @return 翻译多个整形数据的累加结果 12 */ 13 public static int add(int [] data) { 14 int sum = 0 ; 15 for (int x = 0 ; x < data.length ; x ++) { 16 sum += data[x] ; 17 } 18 return sum ; 19 } 20 } 上例程序实现的是一个方法接受不同长度的数据内容,并将内容值进行累加处理;之所以使用数组,是因为多个参数无法具体的描述,只可以用数组的方式来接收多个不定的参数。 下述为定义可变参数方法的格式说明: [public | protected | private] [static]