* 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无参空构造执行");
} }

最新文章

  1. ios 关于UIView 的multipleTouchEnabled 和 exclusiveTouch
  2. Fresco 使用笔记(一):加载gif图片并播放
  3. CSS3弹性伸缩布局(一)——box布局
  4. Hosting Your Own NuGet Feeds
  5. Working with Other Node Types
  6. 通过autofac教你彻底明白依赖解耦(二)理论结合实践 - 大侠.Net
  7. 如何获取App当前版本号
  8. htm5 user-scalable 的意思
  9. Android自定义processor实现bindView功能
  10. react中对于context的理解
  11. MySQL 5.7开启二进制日志注意事项
  12. 任务调度工具Quartz入门笔记
  13. redis安装,第一天
  14. 微服务架构day01
  15. python 一个函数让你决定你的二维码
  16. ES6 --- JS异步编程的几种解决方法及其优缺点
  17. 01 Linux简介
  18. 大于2t的磁盘分区,并格式化ext4挂载
  19. SpringBoot2 【关于:Table 'XXX.hibernate_sequence' doesn't exist】
  20. 【转】OPenGL MFC绘图

热门文章

  1. centos7及服务器端安装python2.7.13, setuptools, pip
  2. vue中动态绑定class
  3. Beta阶段冲刺前计划与安排
  4. UVa437 The Tower of Babylon(巴比伦塔)
  5. 《大话设计模式》c++实现 抽象工厂模式
  6. shell作业控制(后台前台命令)
  7. MyEclipse10中文乱码
  8. PID控制動手玩玩看
  9. 【转】通过Excel生成批量SQL语句,处理大量数据
  10. L1正则和L2正则的比较分析详解