* static:是一个关键字,用于修饰成员变量和成员方法
* static的特点:
* 被所有的对象所共享
* 可以使用类名调用
* 静态的加载优先于对象
* 随着类的加载而加载

* static的注意事项:
* 静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 不可以调用非静态成员变量
* 不可以调用非静态成员方法
* 静态方法只能调用静态的成员
* 非静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 可以调用非静态的成员变量
* 可以调用非静态的成员方法
*
* 静态的方法中是否有this这个对象?没有的

//Math:包含了一些基本的数学运算方法
//static double PI
System.out.println(Math.PI);

//static double abs(double a) :返回绝对值
System.out.println(Math.abs(15));
System.out.println(Math.abs(-10));

//static double ceil(double a) 天花板 向上取整
System.out.println(Math.ceil(1.2));
System.out.println(Math.ceil(1.6));
//static double floor(double a) 地板 向下取整
System.out.println(Math.floor(1.2));
System.out.println(Math.floor(1.6));

//static long round(double a) :四舍五入
System.out.println(Math.round(1.2));
System.out.println(Math.round(1.6));

//static double max(double a, double b)
System.out.println(Math.max(3, 4));

//static double pow(double a, double b) :返回第一个参数的第二个参数次幂
System.out.println(Math.pow(3, 2));

//static double random() :返回一个随机数,大于零且小于一
System.out.println(Math.random());

//构造代码块:提取构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行

//静态代码块:随着类的加载而加载,只加载一次,加载类时需要做的一些初始化,比如加载驱动

以下代码执行顺序:
* BlockTest静态代码块执行 --- BlockTest的主函数执行了 --- Coder静态代码块执行 --- Coder构造代码块执行 --- Coder无参空构造执行
* Coder构造代码块执行 --- Coder无参空构造执行

 public class BlockTest {
static {
System.out.println("BlockTest静态代码块执行");
} {
System.out.println("BlockTest构造代码块执行");
} public BlockTest(){
System.out.println("BlockTest无参构造执行了");
} public static void main(String[] args) {
System.out.println("BlockTest的主函数执行了");
Coder c = new Coder();
Coder c2 = new Coder();
}
} class Coder { static {
System.out.println("Coder静态代码块执行");
} {
System.out.println("Coder构造代码块执行");
} public Coder() {
System.out.println("Coder无参空构造执行");
} }

Static变量与代码块的更多相关文章

  1. java类成员变量与代码块初始化

    首先根据下面的这个一段代码:引入关于java初始化顺序的问题public class InitationTest extends Person { public InitationTest() { S ...

  2. java:构造方法:无参构造/有参构造 this static关键字 静态变量 静态方法 代码块 封装 静态常量。

    /*构造方法是一种特殊的方法,专门用于构造/实例化对象,形式:[修饰符] 类名(){ }构造方法根据是否有参数分为无参构造和有参构造*/public class Dog {               ...

  3. 黑马程序员——JAVA基础之主函数main和静态static,静态代码块

    ------- android培训.java培训.期待与您交流! ---------- 主函数:是一个特殊的函数.作为程序的入口,可以被jvm调用. 主函数的定义: public:代表着该函数访问权限 ...

  4. 构造方法、封装、关键字(this、static)和代码块的介绍

    1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方法的重载关系. 构造方法在初始化一个类的对象时进行调用,它没有返回值,方法名与类名相同 ...

  5. java static关键字和代码块

    static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑 ...

  6. java 静态变量 静态代码块 加载顺序问题

    在网上看了一个这样的题目 public class StaticTest { public static void main(String[] args) { staticFunction(); } ...

  7. java中成员变量、代码块、构造函数运行顺序

    1.java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类. 初始化子类静态代码块和成员变量 2.load完成父类与子类后,从main函数入口运行 ...

  8. 零基础学习java------day8------javabean编写规范,继承,static关键字,代码块,单例设计模式

    0. 今日内容提要 1. javabean书写规范 javabean:一个普通的类,用来描述事物的类,里面不包含任何的业务逻辑,只是用来存储数据. 比如:Teacher,Student,Mobile. ...

  9. static关键字和代码块

    static关键字 static修饰的变量称为静态变量/共享变量/类变量 用于修饰类的成员,如成员变量.成员方法以及代码块等,内static修饰的成员具备一些特殊性 1.静态变量 在java类中使用s ...

随机推荐

  1. c++基础:之封装

         原创: 零灵柒 C/C++的编程教室 2月4日 什么是类 C++是什么?C++设计之初就是class with c,所以简单点说,C++就是带类的C,那么什么是类? 类,简单点说就是类型,在 ...

  2. 关于double精确度的简单问题

    (1)测试TestDouble.java结果 结果:如图,使用double类型的数据进行运算时结果是不准确的. 原因:double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位 ...

  3. CSU 1859 Gone Fishing(贪心)

    Gone Fishing [题目链接]Gone Fishing [题目类型]贪心 &题解: 这题要先想到枚举走过的湖,之后才可以贪心,我就没想到这,就不知道怎么贪心 = = 之后在枚举每个湖的 ...

  4. Mongodb $in $or 性能比较

      MongoDB docs have the answer: "When using $or with <expressions> that are equality chec ...

  5. 关于hdfs 和hive的数据迁移

    1. 迁移hdfs,使用hadoop 命令 hadoop distcp -pugp  hdfs://localhost:9000/ hdfs://localhost:9000/ 此处示例仅作说明用 2 ...

  6. Oracle与MySQL的比较[内容来自网络]

    支持的特性方面的比较: https://www.quora.com/Whats-the-difference-between-Oracle-and-MySQL oracle和mysql在 安全,数据类 ...

  7. Sql Server参数化查询之where in和like实现详解 [转]

    文章导读 拼SQL实现where in查询 使用CHARINDEX或like实现where in 参数化 使用exec动态执行SQl实现where in 参数化 为每一个参数生成一个参数实现where ...

  8. ModuleNotFoundError: No module named '_pydevd_bundle.pydevd_cython' error on debug

    现象:pycharm调试代码出现错误:ModuleNotFoundError: No module named '_pydevd_bundle.pydevd_cython' error on debu ...

  9. 原生js实现图片轮播效果

    思路:设置父容器(一定宽度,一定高度,相对定位,子容器超出部分进行隐藏),子容器图片并排(浮动,绝对定位,每次点击进行相应的左或右偏移量) 1.html: <!DOCTYPE html> ...

  10. mysql主从配置,读写分离

    Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库 ...