JDK

Android逆向 | 基础篇

霸气de小男生 提交于 2021-01-21 03:28:48
点击上方“ 咸鱼学Python ”,选择“ 加为星标 ” 第一时间关注Python技术干货! API API文档怎么使用 • 看包路径 • 看构造方法 • 看方法摘要 导包 • 导包:import 包路径.类名称,如果需要使用的目标类和当前类位于同一个包下,则可以省略导包语句不写,且只有 java.lang 包下的内容不需要导包,其他的包都需要 import 语句 • 创建:类名称 对象名 = new 类名称() • 使用:对象.成员方法名() 匿名对象 创建对象的标准格式: 类名称 对象名 = new 类名称() 创建匿名对象的格式: 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符 new 类名称() 注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以使用匿名对象。 生成随机数 import java . util . Random Random r = new Random () // 获取随机 int 数字 范围是 int 所有范围,有正负两种 int num = r . nextInt () // 获取随机 int 数字 参数代表了范围,左闭右开区间 int num = r . nextInt ( 3 ) // 实际代表的含义是:[0,3) 即 0~2 ArrayList

(1)线程的开始与停止

匆匆过客 提交于 2021-01-21 01:15:29
一、线程的启动 1、深入理解 run() 和 start() Thread 类是 Java 里对线程概念的抽象,可以这样理解:我们通过 new Thread() 其实只是new出一个Thread 的实例,还没有操作系统中真正的线程挂起钩来。 只有执行了 start() 方法后,才实现了真正意义上的启动线程。 start() 方法让一个线程进入就绪队列等待分配 cpu,分到cpu后才调用实现的run() 方法, start() 方法不能重复调用,如果重复调用会抛出异常。 而 run 方法是业务逻辑实现的地方,本质上和任意一个类的任意一个成员方法并没有任何区别,可以重复执行,也可以被单独调用。 2、启动线程的方式 ① XXX extends Thread,然后 XXX.start ② XXX implements Runnable,然后交给 Thread 运行 下面来演示一下: /** * ① XXX extends Thread,然后 XXX.start */ public class Test { private static class TestThread extends Thread{ public TestThread(String name) { super(name); } @Override public void run() { String name =

5个小技巧彻底搞懂JVM内存模型【针对3年以上Java开发】

天大地大妈咪最大 提交于 2021-01-20 16:59:29
前言 本篇文章将重点分析jvm,涉及到的内容包括jvm内存模型,类加载器,GC回收算法,GC回收器,整体偏向于理论。本篇文章不适合初学者,由于篇幅有限,小编对应整理一份JVM性能调优实战400多页学习笔记,关注公种浩:麒麟改bug,分享给到大家,适合具有3年以上开发经验的技术人员,欢迎大家一起交流分享,文章若有不足之处,欢迎读者朋友们指出,先感谢。 一 明确jdk,jre和jvm之间关系 下图为官网关于jdk,jre和jvm的架构图,从该架构图,很容易看出三者之间关系: (1)jdk包含jre,而jre又包含jvm (2)jdk主要用于开发环境,jre主要用于发布环境,当然,发布环境用jdk也没问题,仅仅是性能可能会有点影响,jdk与jre关系有点类似程序debug版本和release版本之间关系 (3)从文件大小来说,jdk比jre大。从图中可以看出,jdk比jre多了一层工具包,如常用的javac,java命令等 二 类加载器 关于jvm类加载器,可概括为如下图: 1.为什么要有类加载器? (1)将字节码文件加载到运行时数据区。.java源码通过Javac命令编译后形成的字节码文件(.class),通过类加载器加载进入jvm中的。 (2)确定字节码文件在运行时数据区的唯一性。相同的字节码文件,通过不同的类加载器,就形成不同的文件

全网最新最良心的IDEA安装教程

风流意气都作罢 提交于 2021-01-20 10:25:05
今天给大家带来的是一篇非常给力的教程IDEA IDEA总是要不停地激活?! 别急,我们整理出来了网上出现的几乎所有的破解方法还有激活码,再也不用到处搜索了~ 先简述一下具体的步骤 1.官网下载IDEA最新版安装程序 2.安装下载好的安装程序 3.关键一步,永久激活安装程序,让你学到老,用到老 这里所用到的环境是 window10 64位家庭版系统,下面开始第一步。 其实第一步非常简单,打开浏览器,输入IDEA,即可看到下面的画面。要注意的是关键字:官网 因为是外国网站,网速不好的话,只能跟我一样,今天下载,明天才能拿过来安装使用,哈哈。官网打开如下: 是在跟我开玩笑吗?一片空白,又是一次次狂刷页面,还是没有出来。。。。还是出来了!别慌!页面的色彩还是挺妖艳的! 页面往下滚一点点即可看到下面的画面:我们点击我红线框出来的地方,原谅我,网络太差,又是一顿狂转的等待。 进去这里,你会看到下面的画面,出现了很多属于这个公司整出来的IDE。在这里你肯定能找出来你要用来改变世界的那一款,就是你要安装的IDEA吗? 点击你要安装的IntelliJ IDEA,就会看到下面的画面,根据你的电脑系统和安装文件类型,点击DOWNLOAD即可进行下载啦!(这里要注意的是要选择左边的Ultimate版本,功能齐全)至于为什么,留给你慢慢思考吧。 这里步骤的第一步算完成了!来到第二个步骤了

Java面试宝典

心不动则不痛 提交于 2021-01-20 05:56:29
相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或者重写它来实现的. 灵活性: 简化性: 代码中如何实现多态 实现多态主要有以下三种方式: 1. 接口实现 2. 继承父类重写方法 3. 同一类中进行方法重载 虚拟机是如何实现多态的 动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际类型调用对应的方法. 接口的意义 接口的意义用三个词就可以概括:规范,扩展,回调. 抽象类的意义 抽象类的意义可以用三句话来概括: 为其他子类提供一个公共的类型 封装子类中重复定义的内容 定义抽象方法,子类虽然有不同的实现,但是定义时一致的 ## 接口和抽象类的区别 比较 抽象类 接口 默认方法 抽象类可以有默认的方法实现 ,java 8之前,接口中不存在方法的实现. 实现方式 子类使用extends关键字来继承抽象类.如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现. 子类使用implements来实现接口

你必须掌握的 21 个 Java 核心技术!

五迷三道 提交于 2021-01-20 05:54:21
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。 不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。 我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。 当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2. Java的运行 这条可能出看很简单

必须掌握的 21 个 Java 核心技术

╄→尐↘猪︶ㄣ 提交于 2021-01-20 05:54:03
点击上方 “ Java专栏 ”, 选择“置顶或者星标” 第一时间阅读精彩文章! 1、☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 2、☞ 《Java面试手册》.PDF 点击查看 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。 不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。 我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。 当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构,

你必须掌握的 21 个 Java 核心技术!

雨燕双飞 提交于 2021-01-20 05:53:40
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 8.2 分钟。 来自: Java进阶架构师 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。 不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。 JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。 我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。 当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2. Java的运行 这条可能出看很简单,java程序的运行谁不会呢? 不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。

Java开发必须掌握的21个核心技术

南笙酒味 提交于 2021-01-20 05:18:35
这次介绍的主要内容是和J2SE相关的部分 1. JVM相关(重点) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。 不过对于一个有着 3年以上Java经验的资深开发者 来说,不会JVM几乎是不可接受的。 JVM作为java运行的 基础 ,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。 我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了 。 当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2. Java的运行 这条可能出看很简单,java程序的运行谁不会呢? 不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。 这个知识点是最最基本的java开发者需要掌握的,第一个肯定是教你如何在命令行中执行java程序,但是很多人一旦把java学完了,IDE用上了,就把这个都忘了。 为什么强调要知道这个呢