这篇文章 2016年12月13日星期二 就写完了,当时想着等写完另外一篇关于自定义注解的一起发.结果没想到这一等就是半年多 - -. 有时候的确是这样啊,总想着等条件更好了再干,等准备完全了再开始,结果好多想法.好多事情都不了了之. 读完本文你将了解: 什么是注解 Java 内置的注解 个用于通知编译器信息的注解 个用于修饰注解的注解 自定义一个注解 注解的作用 注解的用法 运行时注解 总结 Thanks 什么是注解 注解是一种元数据(描述数据的数据) 描述作用,不会直接生效,需要在编译前/运行…
对注解概念不了解的可以先看这个:Java注解基础概念总结 前面有提到注解按生命周期来划分可分为3类: 1.RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃: 2.RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期: 3.RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在: 这3个生…
Android的注解有编译时注解和运行时注解,本文就介绍下运行时注解. 其实非常简单,直接上代码:本文主要是替代传统的findViewById()的功能,就是在我们Activity中不需要再使用findViewById()去给View赋值了,通过注解在运行阶段自动赋值.以及setOnClickListener()也是一样的原理.使用注解和反射技术. 1. 定义自己的annotation注解. 定义findViewbyId这个功能的注解 package com.xxx.xxx.xxx; impor…
预备知识: Java注解基础 Java反射原理 Java动态代理 一.布局文件的注解 我们在Android开发的时候,总是会写到setContentView方法,为了避免每次都写重复的代码,我们需要使用注解来代替我们做这个事情,只需要在类Activity上声明一个ContentView注解和对应的布局文件就可以了. @ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity {…
Tips 做一个终身学习的人. 在第一章节中,主要介绍以下内容: 什么是自定义运行时映像和JIMAGE格式 如何使用jlink工具创建自定义的运行时映像 如何指定命令名称来运行存储在自定义映像中的应用程序 如何使用jlink工具插件 一. 什么是自定义运行时映像? 在JDK 9之前,Java运行时映像可用作巨大整体的单体(artifact),从而增加了下载时间,启动时间和内存占用.单体JRE使得不可能在具有小内存的设备上使用Java. 如果将Java应用程序部署到云端,则需要支付使用的内存; 最…
最近在看深入了解java虚拟机第一版(周志明著),特此写读书笔记,整理其中重要的东西和自己的理解. ”java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出去” 这堵墙所说就是虚拟机,书中也提到了为什么要学习虚拟机: 对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不在需要为每一个new的操作去写配对的delete/free代码而且不容易出现内存泄漏和内存溢出的问题,但是由于内存控制的权力全在交给了虚拟机,所以一旦出现内存泄漏和溢出方面…
Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”. C.C++程序开发在内存管理区域,既拥有每一个对象的“所有权”,又担负着每一个对象声明开始到终结的责任,而Java在虚拟机自动管理机智的帮助下,不需要为每一个new操作去写配对的delete/free操作,不容易发生内存泄漏和内存溢出问题,但是一旦出现,处理起来可能会很困难 1.运行时数据区域 java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域.这些区域有各自的用途,创建以及销毁的时间. ①程序…
运行时数据区域 Java虚拟机所管理的内存将会包括以下几个运行时数据区域 线程私有区域 1.程序计数器   程序计数器记录的是当前正在执行的虚拟机字节码指令所在的地址.在虚拟机的概念模型中,字节码解释器就是通过改变这个计数器来获取下一条需要执行的字节码指令.分支,循环,跳转,异常处理,线程回复都需要依赖该计数器完成.   每条线程都有一个独立的程序计数器,各程序计数器之间互不影响,独立存储,我们称这类内存区域为线程私有的内存.此内存区域是虚拟机中唯一没有规定任何OutOfMemoryError的…
java虚拟机所管理的内存区域主要分为方法区.堆:虚拟机栈.本地方法栈.程序计数器,如图: 1.程序计数器是当前线程所执行的字节码行号指示器,用以记录当前指令执行的位置.程序计数器是线程私有的,每个线程都有一个独立的线程计数器. 2.Java虚拟机栈是一种Java方法执行的内存模型:方法执行时会创建一个栈帧用来存储局部变量表.操作数栈.动态链接.方法出口等信息.方法调用到执行完成的过程就是一个栈帧在虚拟机栈从入栈到出栈的过程.经常有人将java内存分为堆内存和栈内存,其中的栈就是指虚拟机栈,更具…
前言 本打算花一篇文章来聊聊JVM内存管理机制,结果发现越扯越多,于是分了四遍文章(文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8),本文为其中第一篇.from 你必须了解的java内存管理机制-运行时数据区 相关链接(注:文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8,个人技术博客www.17coding.info) 1. 你必须了解的java内存管理机制-运行时数据区 2. 你必须了解的java内存管理机制-内存分配 3. 你必须了解的java内存管理机制-垃圾标…