-
Java Random 随机详解
伪随机
什么是伪随机数?
1.伪随机数是看似随机实质是固定的周期性序列,也就是有规则的随机。
2.只要这个随机数是由确定算法生成的,那就是伪随机,只能通过不断算法优化,使你的随机数更接近随机。(随机这个属性和算法本身就是矛盾的)
3.通过真实随机事件取得的随机数才是真随机数。
Java随机数产生原理:
Java的随机数产生是通过线性同余公式产生的,也就是说通过一个复杂的算法生成的...
2019-02-26 01:48:47 |
Java
-
Java 对象占用内存大小的一些方法
业务背景
最近在做 leetcode 相关的练习题,想知道一个程序的耗时和内存消耗情况。
耗时相对比较简单,但是内存消耗整体看下来就会比较麻烦。
简单思路
Runtime r = Runtime.getRuntime();
r.gc();
long startMem = r.freememory(); // 开始时的剩余内存
// 你的代码……
long orz = star...
2019-02-26 01:48:47 |
Java
-
Java 对象占用内存大小与 java 对象格式
java 基本类型
byte:1个字节,8位,-128~127 最大存储数据量 255
short:2个字节,16位,-32768~32767 最大存储数据量 65535
char:2个字节,16位,存储Unicode编码,用‘’
int:4个字节,32位,负的2的31次方~2的31次方-1 最大存储数据量 2的31次方-1
float:4个字节,32位
double:8个字节...
2019-02-26 01:48:47 |
Java
-
aspectj-01-Introduction to AspectJ
概述
本编程指南描述了 AspectJ 语言。 配套指南描述了 AspectJ 开发环境中的工具。
如果您对 AspectJ 完全陌生,您应该首先阅读 AspectJ 入门,以获取 AspectJ 编程的广泛概述。
如果您已经熟悉 AspectJ,但想要更深入地了解,您应该阅读 AspectJ 语言并查看本章中的示例。
如果您想要 AspectJ 的更正式的定义,您应该阅读 Sema...
2019-02-26 01:48:47 |
Java
-
Aopalliance-03-aspectj 介绍
介绍一下 aspectj
AspectJ是一种基于Java编程语言的面向切面编程(AOP)的扩展框架。它为Java开发者提供了在源代码级别实现横切关注点的能力。AspectJ通过引入新的关键字和注释,使得在现有的Java代码中可以更容易地定义和应用横切关注点,从而分离关注点和核心业务逻辑。
AOP是一种编程范式,它允许开发者将横跨应用程序的功能(称为切面)从核心业务逻辑中分离出来。这些切...
2019-02-26 01:48:47 |
Java
-
Aopalliance-03-原生 AspectJ 3 种织入方式及 spring-aop 原理分析
前言
前两天看了一些关于spring aop以及AspectJ的文章,但是总是感觉非常的乱,有的说spring aop跟aspectj相互独立,有的说spring aop依赖于aspectj,有的甚至直接把两者混为一谈。
很多专门讲Aspectj的文章也只是搬运了AspectJ的语法,就那么一两点东西,讲来讲去也没有什么新意。
甚至很多甚至都是面向IDE编程(教你怎么安装插件,点击菜单...
2019-02-26 01:48:47 |
Java
-
Aopalliance-03-aspectj-01-LTW 加载时织入入门例子
如何基于 aspect 实现运行时织入?类似 spring aop 那样?
在AspectJ中实现运行时织入,类似于Spring AOP的运行时织入,可以通过使用AspectJ的load-time weaving(LTW,加载时织入)功能来实现。
Load-time weaving是一种在类加载过程中织入切面的方式,允许您在应用程序运行时将切面逻辑织入到目标类中。
1.maven 依赖...
2019-02-26 01:48:47 |
Java
-
Aopalliance-03-aspectj-00-hello world 入门例子
入门例子
maven 依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schema...
2019-02-26 01:48:47 |
Java