java学习笔记11-static关键字】的更多相关文章

static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载时执行 静态属性也是类加载时开辟空间 可以利用静态代码块,把这个类使用之前需要的准备工作放到静态代码块中 2.static修饰属性: 不再属于对象的,而是属于这个类 当程序运行后,第一使用某个类时,JVM会加载这个类到内存, 程序运行过程中,一个类只加载一次,所以静态属性只有一份 在类的外部使用静态…
static关键字 1.static修饰变量也称静态变量,静态变量存放在静态区被该类的所有对象共享. 例如,定义了一个类class User{static Sring city = "a城"},将类中的一个city属性定义为静态变量.我们创建一个对象use1,然后可以通过user1.city = "b城"修改静态区里面User类的信息.User类中city的初始值就发生了改变,变成了b城.我们再新建一个对象use2,打印user2,会发现user2.city变成了b…
Java学习笔记之---static static不能修饰类,局部变量 (一)静态成员的特征 static+属性  静态属性 无论实例化出来多少个对象,都会共用同一块静态空间,类对象共享 静态成员从第一次被加载之后一直到这个类不再有任何对象被使用,也就是说被彻底的销毁的时候,才会进行资源的释放,生命周期长 public class Pig { String name; static int price; } class PigTest{ public static void main(Strin…
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静态变量 static修饰的变量为静态变量 在创建对象时,静态变量位于方法区中,而非像实例变量一样,位于堆内存中 一个类的所有对象共用相同静态变量,通过类名来调用静态变量,通过实例来调用虽然也符合语法,但不推荐 示例:静态变量的一个用法 class Employee{ private static i…
(阅读<C++ primer plus>可知 C++的static关键字跟Java还是很类似的) 为什么需要static关键字:在文件A中定义的非局部变量language,在文件B中可以通过 extern string language进行引用; 这样一来,在B文件中就可以使用language了,而且B中的language和A中的language是同一个变量,指向同一个地址.如果不加extern,直接在B文件中申明string language是会报错的,因为A文件中的language是外向链…
static关键字   作用:修饰符,用于修饰成员<成员产量,成员方法>     1'被修饰的成员产量只有一份.     2'被修饰后的成员多了一种方式的访问,除了可以对象调用外,还可以被类名直接调用.       特点:   1'随着类的加载而被加载.     2'优先于对象存在.     3'被所有对象所共享,可以直接   被类名所调用.     随着类加载存储在内存数据区里.   实例变量随着对象的建立存在于堆内存.           生命周期:   1'类变量生命周期最长,随着类的消…
首先来看一个简单的 Java 程序. 来看下面这个程序,试试看是否看得出它是在做哪些事情! 范例:TestJava.java   // TestJava.java,java 的简单范例  public class TestJava {              public static void main(String args[]) {                          int num ; // 声明一个整型变量 num                          nu…
package welcome; import java.util.Scanner; /* * 代数问题:求解2x2线性方程 */ public class ComputeLinearEquation { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter a, b, c, d, e, f: "); double a = in.next…
[14-9]面向对象-final关键字 /* 继承的弊端,打破封装性. 不让其他类继承该类,就不会有重写. 怎么能实现呢?通过Java中的一个关键子来实现,final(最终化). [final关键字] 是一个修饰符,可以修饰类,方法,变量(成员变量,局部变量,静态变量). [特点] 1,final修饰的类是一个最终类,不能派生子类. 如果类中出现部分可以重写,部分不可以,怎么办?只要让指定的方法最终化就可以了. 2,final修饰的方法是最终方法,不可以重写. 3,final修饰的变量是一个常量…
多态: 举例:描述一个事物的多种形态,如Student类继承了Person类,一个Student对象既是Student,又是Person 多态体现为:父类引用变量可以指向子类对象 多态的前提:必须有子父类关系或者类实现接口关系,否则无法完成多态 在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法 举例: public class Fu { public void show(){ System.out.println("父类的show方法"); } } public class…
一.为什么要用synchronized关键字 首先多线程中多个线程运行面临共享数据同步的问题. 多线程正常使用共享数据时需要经过以下步骤: 1.线程A从共享数据区中复制出数据副本,然后处理. 2.线程A将处理好的数据副本写入共享数据区. 3.线程B从共享数据区中复制出数据副本. 如此循环,直到线程结束. 假如线程A从共享数据区中复制出数据副本然后处理,在还没有将更新的数据放入主内存时,线程B来到主内存读取了未更新的数据,这样就出问题了. 这就是所谓的脏读,这类问题称为多线程的并发问题. 举个具体…
在写Java代码的时候,如果某个地方需要一个接口的实现类,一般的做法是新定义一个实现类,并重写接口中的方法,在需要使用的时候new一个实现类对象使用,为了一个简单的接口或者说为了一个回调函数就得额外编写一个新类,即使说使用匿名内部类来实现,这样似乎比较麻烦.C中的做法是直接传入一个函数指针,而Java中就需要上述麻烦的操作,能不能简单点呢?为此Java中引入了一个lambda表达式的功能. lambda 表达式简介 看看之前线程的例子: public class ThreadDemo{ publ…
Java内部提供了针对多线程的支持,线程是CPU执行的最小单位,在多核CPU中使用多线程,能够做到多个任务并行执行,提高效率. 使用多线程的方法 创建Thread类的子类,并重写run方法,在需要启动线程的时候调用类的start() 方法,每一个子类对象只能调用一次start()方法,如果需要启动多个线程执行同一个任务就需要创建多个线程对象 实现Runnable 接口并重写run 方法,传入这个接口的实现类构造一个Thread类,然后调用Thread类的start方法 实现Callable 接口…
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常. Java中的异常主要分为下列几类: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的.例如要打开一个不存在文件时,一个异常就发生了…
1.static可以用于修饰成员变量.方法以及块,并不会改变类中成员的权限修饰,如:private修饰的成员变量,类外只能类名或非私有方法调用,而不能使用对象名调用. 2.static方法和成员变量,可使用类名直接调用,而不需要实例化:类名.方法名();类名.变量名(); 也可以实例化后,使用对象名调用. 3.static方法(静态方法): 3.1 静态方法中,没有this,因为没有创建对象: 3.2 静态方法中不能调用非静态成员变量.方法,但非静态方法可以调用静态成员变量.方法: 4.stat…
this在构造方法间的使用, public class Person { private String name; private int age; public Person() { //this()是调用其他的构造方法 //this()必须写在构造方法第一行 this("张三", 20); } public Person(String name, int age) { this.name = name; this.age = age; } } public class Test {…
1.Class对象的getClasses()方法获取的是该类中所有的公共的内部类,以及从父类,父接口继承来的内部类.getinterfaces()方法返回类继承的所有接口. import javax.print.attribute.standard.PrinterInfo; interface HasBatteries{} interface Waterproof{} interface ShootsThings{} class Toy{ Toy(){} Toy(int i){} } class…
supe主要是调用父类中被重写的方法及属性. 用下列代码那说明: package cn.hcf.TestSuper; public class TestSuper { public static void main(String[] args){ Student stu = new Student(); stu.task(); } } class Person{ int ID; void task(){ ID = 100; System.out.println("工作"); } } c…
this关键字主要有三个作用 1.调用本类中的属性. public class TextThis { public static void main(String[] args){ Person p1 = new Person(); p1.getInfo(); } } class Person{ String name; int age; public Person(String n, int a){ name = n; age = a; } public String getInfo(){ S…
1.右键 项目名称 —— MyEclipse —— Add Spring Capabilities 2.选取 Copy checked Library contents to project folder 3.建立IService 与 Service [Spring 同样是面向接口编程,因此需要引入IService] public interface ILoginService { public boolean isLogin(String username,String password);…
最终的,最后的 可以修饰:变量.方法.类 (1) 修饰变量 不可改变,即常量,只能赋值一次,赋值之后不可改变 a. 修饰属性:private final int num; 要求属性要显式赋值 通常在属性中,final和static一起使用,表示静态常量:private static final int num; 静态常量的命名规则:每个字母都大写,多个单词之间用下划线分割 b. 修饰局部变量:final int count: 只能赋值一次,二次报错 形参在调用时赋值,所以方法内不能在改变 (2)…
一.this关键字 1.代表当前类的对象 2.通过” . ”调用成员属性和成员方法 3.通过this可以区分成员属性和参数 参数名和属性名相同的情况,默认是参数名 二.非静态成员属性和静态成员属性的区别 非静态通过“对象.属性“的方式调用 静态通过“类名.属性“的方式调用 非静态属性每个对象各有一份,静态属性被对象之间共享,属于类 三.类的加载顺序 创建对象时: 1.首先加载静态资源 a) 静态代码块 b) 静态成员属性 静态资源只会加载一次,并且按照从上到下的顺序加载 2.加载普通代码块和成员…
java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字符串 { case 6: System.out.println(); break; case 5: System.out.println(); break; case 4: System.out.println(); break; default: System.out.println(); bre…
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数的所属对象的引用.         简单说,哪个对象调用了this关键字所在的函数,this就代表哪个对象. 1.区别局部变量和成员变量 内存图解: 说明: 程序执行到main函数时,main函数进入栈内存中的方法区,执行到Person p = new Person("旺财");时,在ma…
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库. ③.JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制. Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类. 在运行时构造任意一…
20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定,称为x名称参考至新建对象. 一个原始码中可以有多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同. 二.使用标准类: java.util.Scanner 为了免去每次输入时都要写java.util.Scanner,可以一开始就是用import,在建立Scanner实例时必须传入java…
java学习笔记(1)中说过了java的一些基础知识,发展史,特点,编译和运行过程,配置环境变量等,接下来开始介绍java的语法等只是点  关于java源程序中的注释: *什么是注释?注释的作用是什么? -出现在java源程序当中,是对java源代码的解释说明. -注释不会被编译到.class字节码文件当中. -一个号的开发习惯,应该是多编写注释.这样程序的可读性增强. *java的注释怎么写呢? -单行注释 //单行注释,只注释当前行 -多行注释 /* 多行注释 多行注释 ... */ -ja…
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条线程访问,一条线程在执行一个循环的过程中被中断,下一个线程则出现错误 因此,线程任务中可能引起错误的地方应当被一次执行完毕 同步代码块 用同步代码块改写上面的代码 package testpack; public class Test1 { public static void main(Strin…
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annotation Processing Tool)一起使用,APT会对含有注解进行一些处理 比如API文档里面,有些方法下边的"@Deprecated",就是一个注解,它表示这个方法已经过时,使用的时候会收到警告 注解完全不影响程序的功能 元注解 元注解有6个,位于java.lang.annot…