(1)普通代码块:就是类中方法的方法体

public void xxx(){

//code

}

(2)构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象

时都会被调用,并且优先于类构造函数执行。

{

//code

}

(3)静态块:用static{}裹起来的代码片段,只会被执行一次(第一次加载此类时执行,比如说用Class.forName("")加载类时就会执行 static  block),静态块优先于构造块执行。如果某些代码必须要在项目启动时候就执行的时候,我们可以采用静态代码块,这种代码是主动执行的。静态代码块可以用来初始化一些项目最常用的变量和对象。

static{

//code

}

(4)同步代码块:使用synchronized(obj){}裹起来的代码块,在多线程环境下,对共享数据进行读写操作是需要互斥进行的,否则会导致数据的不一致性。常见的是synchronized用来修饰方法,其语义是任何线程进入synchronized需要先取得对象锁如果被占用了,则阻塞,实现了互斥访问共享资源。而synchronized也是有代价的。

一个常见的场景是,一个冗长的方法中,其实只有一小段代码需要访问共享资源,这时使用同步块,就只将这小段代码裹在synchronized  block,既能够实现同步访问,也能够减少同步引入的开销。

synchronized(obj){

//code

}

执行顺序:静态代码块>静态函数(不调用时不显示,先加载进来)>主函数>构造代码块>构造函数>普通代码块对于继承关系而言。先执行构造链上的所有静态代码块,再依次按照非静态代码块的顺序,执行继承链上非静态代码块。

对于类体内部生成对象的情况,静态代码块第一次加载时执行,即仅仅会在最外侧执行。

public class test

{

public static test t1 = new test();

public static test t2 = new test();

public test(){

System.out.println("构造块1");

}

{

System.out.println("构造块2");

}

static

{

System.out.println("静态块");

}

public static void main(String[] args)

{

test t = new test();

}

}输出如:

构造块2

构造块1

构造块2

构造块1

静态块

构造块2

构造块1

false

3.向上转型和向下转型

向上转型:子类对象给父类引用,类型提升,动物x=new猫;

向下转型:父类的引用指向自己子类类型,强制转换;动物x=new 猫 ,猫y=(猫)x

但是不能将父类的对象转换成子类类型,动物x=new 动物  猫 y=(猫)x

多态自始至终都是子类对象在做改变。

java知识点博客园_Java知识点总结1相关推荐

  1. java list 博客园_Java集合系列(一)List集合

    List的几种实现的区别与联系 List主要有ArrayList.LinkedList与Vector几种实现. ArrayList底层数据结构是数组, 增删慢.查询快; 线程不安全, 效率高; 不可以 ...

  2. java知识点博客园_JAVA基础知识回顾

    JAVA基础知识回顾 一.背景介绍 JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platfo ...

  3. java数据结构博客园_Java数据结构

    一.线性数据结构 1.Java一维数组的创建 (1)预先定义数组的内存空间 int[] arr = new int[3]; // new int[3]是代表创建3个内存地址空间 // 地址空间的序号是 ...

  4. java 入门 博客园_java入门基础

    什么是java? java是一门编程语言  编程语言有很多种 你比如 C语言 等等 为什么学习java呢! 因为你要和计算机交互  当然了你用汉语跟她说她听不懂 所以你要学习编程语言 那么额咱们的ja ...

  5. java课程设计 博客园_Java课程设计博客(团队)

    Java课程设计博客(团队) 1. 团队/项目名称 使用JAVA实现简易HTTP服务器 2. 团队成员 组长:林一心 组员:张杭镖 3. 项目git地址 4. 项目git提交记录截图 5. 项目功能架 ...

  6. java 个人博客开发_Java实现个人博客系统

    导读:进入二十一世纪,以Internet为核心的现代网络积水和通信技术已经得到了飞速的发展和广泛的应用,各种网络交流互动工具也应运而生.其中以论坛.博客.社区.空间最为受广大网民朋友的欢迎,也是目前为 ...

  7. java课程设计 博客园_java课程设计

    Java程序设计 课程设计 3.本人负责的主要功能展示与代码分析 //这是一个文件夹类 public class Folder { private String name;//文件夹的名称 priva ...

  8. python知识点博客园_python零碎知识点一

    1.一行代码实现1--100之和 >>> sum(range(1,101)) 5050 2.如何在一个函数内部修改全局变量 a=5 print("修改之前的a的值: %s& ...

  9. java 网络编程 博客园_java网络编程

    1.计算机网络基础 OSI参考模型(开放系统互连参考模型): 物理层:物理层处于OSI的最底层,是整个开放系统的基础.物理层涉及通信信道上传输的原始比特流(bits),它的功能主要是为数据端设备提供传 ...

最新文章

  1. 鸡肋的PHP单例模式
  2. gcc离线安装 ubuntu 不用编译_Ubuntu快速搭建C++开发环境(VS Code编辑器)
  3. 【NOIP2012模拟10.25】旅行
  4. mysql 储存过程
  5. Xamarin Essentials教程安全存储SecureStorage
  6. Linux软件安装管理 - CentOS (二) ---- yum在线安装
  7. SQL Server 为什么事务日志自动增长会降低你的性能
  8. 文艺青年的两门必修课——绘画与音乐
  9. Android之Junit测试类
  10. 点击list view中一行内容可以在combox中显示_java版飞机大战小游戏详细教程(零基础小白也可以分分钟学会!)...
  11. c语言的局部指针,C中局部变量指针问题
  12. java.lang.UnsupportedOperationException: null at java.util.AbstractList.add(AbstractList.java:148)
  13. 大php,厉嗨了我大PHP
  14. C# 连接sql 2005
  15. R|数据处理|list的转化与转置
  16. 怎么在计算机上面掉出CMD,cmd怎么打开(cmd命令入侵老师电脑)
  17. 如何建立个人网站(免费创建个人网站制作流程步骤)
  18. 计算机里不显示u盘盘符,U盘不显示盘符怎么办 U盘没了盘符解决方法【详解】...
  19. 【翻译】“PE文件格式”1.9版 完整译文(附注释)
  20. python使用opencv_玩转Python图片处理 (OpenCV-Python )

热门文章

  1. ASP.NET c# 实验日记(1)
  2. 用通道法抠出外国MM的头发 - PS通道抠图教程
  3. can口通信的软件测试,RT1052+8、CAN通信例程测试
  4. require() - NodeJS
  5. Elasticsearch原理学习--为什么Elasticsearch/Lucene检索可以比MySQL快?
  6. DataGrip数据库管理工具安装使用
  7. 今年出现了5种电子商务SEO趋势
  8. python 生日悖论概率计算。
  9. RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题
  10. PGCrypto 加密组件使用