static

czC#02

五迷三道 提交于 2020-02-25 20:19:51
1、常量 const 类型 变量名 = 值; 2、枚举 [权限控制符] enum 名称{ _值1, _值2, } 3、结构 帮助一次性声明多个不同类型的变量 [权限控制符] struct StructName { _成员; } using System; using System.Text; namespace Demo { public struct Person { // 字段 public string _name; public int _age; public Gender _gender; } public enum Gender { male, female } class Program { static void Main() { Person p; p._name = "Linda"; p._age = 52; p._gender = Gender.female; } } } 4、方法 using System; using System.Text; namespace Demo { class Program { static void Main() { Console.WriteLine(Add2(1,2)); } public static int Add2(int num1, int num2) { return num1 + num2; } } } c

java System类学习笔记

半世苍凉 提交于 2020-02-25 02:00:51
java 中 System 类 最常见到 System.out.println(); System类 定义为 public final class System extends Object{} 包含几个有用的类字段和方法,用了关键字 final 修饰,表示此类不能被其他类继承。 其构造方法为 private System{} (构造方法私有化,不能被外部实例化)。 System 中有三个属性:in,out,err; 1.private final static InputStream in=null; 2.private final static PrintStream out=null; --> out 为类PrintStream 类型 println()就是PrintStream中的方法。out被 final 和static 修饰的常量,故可以用System调用out属性,再调用println()方法。 3.private final static PrintStream err=null; System 中的几个方法: System 中的方法全部用 static 修饰,可以用类名称直接调用,例如 System.getProperties(); 1,public static Properties getProperties(){} System.getProperties(

Android的自救---RescueParty

这一生的挚爱 提交于 2020-02-25 00:25:23
前言 不知道你有没有遇过,就是有时系统开机异常,会直接进入到一个机器人的error界面。我这边就遇到,在OTA升级后,开机后会自动重启,且进入到机器人error界面。经查找,是由于有一个进程在系统开机的时候,不断重启,触发了RescueParty机制,今天在这带大家稍微了解下这个机制。 RescueParty 目前市场上的消费者包括小白用户,当他们的手机出现无限循环启动的异常时,用户没有办法修复异常只能通过设备商售后处理。 Google在Android 8.0加入该新功能,称之为rescue party救援程序。 主要监控系统核心程序出现循环崩溃的时候,会启动该程序,根据不同的救援级别做出一系列操作,看是否可恢复设备,最严重的时候则是通过进入recovery然后提供用户清空用户数据恢复出厂设置解决。 代码路径 frameworks\base\services\core\java\com\android\server\RescueParty.java 救援级别 private static final int LEVEL_NONE = 0; private static final intLEVEL_RESET_SETTINGS_UNTRUSTED_DEFAULTS = 1; //主要针对非系统进程的属性设置进行重置 private static final intLEVEL

Java基础之五、Java编程思想(1-5)

丶灬走出姿态 提交于 2020-02-24 23:20:49
一、对象导论 1:多态的可互换对象   面向对象程序设计语言使用了 后期绑定 的概念。   当向对象发送消息时,被调用的代码直到运行时才能确定。也叫 动态绑定 。 2:单根继承结构   所有的类最终都继承自单一的基类,这个终极基类的名字就是 Object 3:对象的创建和生命期   对象的数据处于作用域,Java完全采用了动态内存分配方式(基本类型只是一种特例) 二、一切都是对象 1:基本类型   基本类型是一个并非是引用的“自动”变量。这个变量直接存储“值”,并置于堆栈中 2:Java中的数组   Java确保数组会被初始化。而且不能在它的范围之外被访问 3:作用域(scope)   Java对象不具备和基本类型一样的生命周期。当用new创建一个Java对象时, 它可以存活于作用域之外    {    String s = new String( "a string");   } // End of scope 引用 s 在作用域终点就消失了。然而, s 指向的 String 对象仍继续占据内存空间 import 关键字   指示编译器导入一个包,也就是一个类库,Java中所有的代码都必须写在类里。特定类 java.lang 会被 自动导入 到每一个Java文件中。 5:static 关键字 只想为某一特定域分配 单一存储空间 ,而不去考虑空间要创建多少对象

深入JVM-Class装载系统

天涯浪子 提交于 2020-02-24 23:14:43
一、Class文件的装载过程 Class类型通常以文件的形式存在(当然,任何二进制流都可以是Class类型),只有被Java虚拟机装载的Class类型才能在程序中使用。系统状态Class类型可以分为加载、连接和初始化3个步骤。其中,连接又可分为验证、准备和解析3步。 1.1 类装载的条件 Class只有在必须要使用的时候才会被装载,Java虚拟机不会无条件的装载Class类型。Java虚拟机规定,一个类或接口在初次使用前,必须要进行初始化。这里指的“使用”,是指主动使用,主动使用只有下列几种情况: 创建一个类的实例,比如使用new关键字,或者通过反射、克隆、反序列化。 使用类的静态方法时,即当使用了字节码invokestatic指令。 使用类或接口的静态字段(final常量除外),比如,使用getstatic或者putstatic指令。 使用java.lang.reflect包中的方法反射类的方法时。 当初始化子类时,要求先初始化父类。 作为启动虚拟机,含义main()方法的那个类。 除了以上的情况属于主动使用,其他的情况均属于被动使用。被动使用不会引起类的初始化。 主动引用的例子: public class Parent { static{ System.out.println("Parent init"); } } public class Child extends

java 单例模式

随声附和 提交于 2020-02-24 10:42:25
1. 单例模式 (1)概念 单例模式的定义是:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 (2)类图、代码 单例模式的类图设计如下: 单例模式中的主动实例化(加载类时实例化单例类)[推荐使用]: //主动实例化的单例模式--饿汉式单例 public class Singleton { // 自行实例化一个对象 private static final Singleton singleton = new Singleton(); // 私有构造函数,只允许自行实例化对象 private Singleton() { } // 公开唯一对象的调用方法,供外部调用 public static Singleton getInstance() { return singleton; } } 外部通过代码Singleton singleton = Singleton.getInstance();来调用这个实例。 该方法的优点是:能保证 线程安全 (适用于单、多线程)。 该方法的缺点是:在加载类时实例化导致该static对象一直保存在内存中, 无论是否使用都占着内存空间 。( 饿汉式”的由来:不管你用的用不上,一开始就建立这个单例对象 ) 单例模式中的被动实例化(调用方法时实例化单例类): //被动实例化的单例模式--懒汉式单例 public class Singleton

单例模式

狂风中的少年 提交于 2020-02-24 10:41:19
一、什么是单例? 确保一个类只有一个实例,并提供一个全局访问点 二、应用 线程池、缓存、数据库等,只需要一个实例,如果多个实例 会造成异常情况 三、简单实现 1)懒汉式简单实现 ①public class Singleton{   private static Singleton singleton;   private Singleton(){}   public static Singleton getInstance(){     if(singletn==null){//位置一       singleton = new Singleton();     }     return singleton;   } } 注:简单的实现对于多线程会有问题,第一次创建singleton时,线程1正在执行位置一,同时线程2又需要一个singleton的实例,她也执行到位置一,致使线程1,2都获取到一个singleton的实例,造成出现两个singleton实例 ②解决多线程的问题,加入synchronized同步锁,只准一个进入去创建实例,重新写getInstance方法 public static synchronized Singleton getInstance(){     if(singletn==null){//位置一       singleton = new

Using Java Spring injection with `public static final` objects (for Jakarta Unstandard)

时间秒杀一切 提交于 2020-02-24 05:45:07
问题 Disclaimer : I understand that trying to use Spring to inject static variables is considered bad practice (and I know there are ways around it, e.g. here). So ultimately I plan to redesign, but am curious about possible solutions or workarounds. I am using Jakarta's Unstandard tag library (particularly useConstants) to easily expose public static final objects to my JSP pages. I want these static objects to initialize themselves from my database, which means I need to inject a JDBC Template

Integer.valueOf源码分析

跟風遠走 提交于 2020-02-24 03:55:09
1. 引言 在牛客网上看到这样一道题目,判断一下打印的结果 public static void main(String[] args){ Integer i1 = 128; Integer i2 = 128; System.out.println(i1==i2); Integer i3 = 100; Integer i4 = 100; System.out.println(i3==i4); } 刚开始看到是,是这样来判断的:因为 Integer i1 = 128 这条语句,Integer 会启用自动装箱功能,调用 Integer.valueOf 方法返回一个 Integer 对象,因此这四个对象应该指向不同的地址,所以打印的结果是两个 false。但是在 eclipse 运行结果如下,为什么会这样呢? 2. 分析 首先想到的就是 Integer.valueOf 这个方法有点蹊跷,因此就去看了一下它的源码,它的内部实现如下: public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); } 从中可以看出

static

血红的双手。 提交于 2020-02-23 11:20:14
static声明的变量和方法称为类属性和类方法 --为类的公共变量,属于类,被类的所有实例共享,在类被载入时,被显示初始化; -- 可以使用“对象.类”来调用,一般用“类名.类属性” -- static变量至于方法区中; 用static声明的方法为静态方法 -- 不需要对象,就可以调用(类名,方法名) --在调用该对象方法时,不会将对象的引用传递给它,所以在Static方法中 不可以访问非static的成员; package mypro01; /** * student类 * @author 4090039qrh * */ public class Student { //非static属性 String name; int age; //static属性 static double weight; static double height; //static方法只能调用static变量 public static void cal_weight() { // System.out.println(name); 不能调用非static属性 name System.out.println(weight); } //非static方法可以调用所有变量 public void cal_height() { System.out.println(name); System.out