Java Standard Edition
文章平均质量分 65
坚持学习的你
还在学习中...
展开
-
Arrays.fill()的错误用法-源码解析
引言: 在刷算法题时,Coders往往只考虑时间复杂度问题,而空间时间复杂度常以空间换时间的方式反向增加。常遇空间问题有迭代开辟了数组空间,为了更优化空间复杂度,常以全局变量数组形式声明,数组赋值解决空间优化问题。相关工作: 数组问题可以概况为一维、二维、三维和高维数组赋值。查看部分博客对二维数组赋值中Arrayss.fill有错误使用问题,为方面后期学习复习和理解,我们将深入Arrays.fill()源码理解赋值的正确方式。 错误用例: ...原创 2021-10-30 17:10:24 · 864 阅读 · 0 评论 -
JVM的字节码执行引擎
引言(自编小故事):一天傍晚,A和B在三康庙大学的操场上走着。A突然对B说:好兄弟,你觉得Java是编译型预言还是解释型语言;B说:刚入门Java的时候觉得是编译型语言,它就是先编译后执行的;A说,然后呢,好兄弟;B接着说:不断学习后,小白的我觉得是解释型语音,编译生成字节码,虚拟机解释执行,然而直到一天自身狭隘的知识体系里出现了JIT即时编译;A看着B说:好兄弟,你接着说啊,怎么开始冥想了;B说:啃下经典的书比通过网上资源学习效率更高哇,以前走多了弯路,但又想想弯路走多了也许也可以建立一些...原创 2021-06-30 21:01:57 · 285 阅读 · 2 评论 -
properties文件的读取封装
Java Properties资源配置封装Getpublic class ConfigurationContext { private volatile Properties properties; private volatile static ConfigurationContext context; private static final String DEFAULT_CONFIGURATION_FILE = "config.properties"; p原创 2020-08-12 19:00:36 · 281 阅读 · 0 评论 -
Java File.separator
Java File.separator 文件路径分隔符Docker容器所遇文件存取问题(思路:权限? 容器虚拟化路径变化?)最终问题为容器虚拟化路径变化期间调错过程使用到File.separator变量用于路径分隔:1) Windows File.separator下为 “\” 右斜杠2)Linux File.separator下为 "/” 左斜杠服务器和本机反复横跳的话,建议直接左斜杠分隔,具体情况视需求而定...原创 2020-08-12 18:19:16 · 242 阅读 · 0 评论 -
Java实现命令行文本进度条
为什么想着去用Java去实现命令行实现进度条呢,在上Python课时,课本上有实现文本进度条的例子,老师也执行了该列子的效果,突然想到了linux,dos命令行中下载文件时的文本进度条,所以想着用java实现个进度条玩玩。这里科普到一个知识点:System.out.print("\b"); // 将标准输出光标索引后移即字符退位。System.out.print("Hello"); // ...原创 2018-11-14 13:43:14 · 2040 阅读 · 0 评论 -
String,StringBuilder,StringBufffer
*前言:Java中处理字符串的类主要是String,StringBuilder,StringBufferStringBuilder和StringBuffer用于拼接字符串,StringBuffer与StringBuilder相比StringBuffer线程安全1.String的剖析String类与包装类类似都为不可变类(不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能...原创 2018-11-11 21:53:15 · 331 阅读 · 0 评论 -
System.out.println(0x80000000-1);//result:2147483647
在以有补码的概念下去理解该result下面即测试和理解代码,最后以Integer包装类中MIN_VALUE,MAX_VALUE,toBinaryString()去验证话不多说贴代码:/** * 以补码进行加运算 * -2147483648 的补码:1000 0000 0000 0000 0000 0000 0000 0000 * 补码+(-1的补码) -1的...原创 2018-11-10 12:04:03 · 274 阅读 · 0 评论 -
Java位运算之异或运算,非运算,与运算,或运算,移位运算
java语言对应数学中逻辑运算"∧" 表示 "与" 对应java : &"∨" 表示 "或" 对应java : |"┐"表示 "非" 对应java : ~a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 异或(xor) 对应java : ^在计算机中,数值一直以补码存储,运算也用补码。ex:8bit signed int (-128~127),最高位原创 2018-11-09 16:43:13 · 1322 阅读 · 0 评论 -
java接口的多继承
在理解java集合框架和 Iterator Pattern的关联时遇到了接口的继承问题这里写下对接口继承的个人理解,理解前需要补充接口和继承知识什么是java接口Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现。不同于接口的概念,接口是一个类所具有的方法的特征集合,是一种逻辑上的抽象。java中类的继承有哪些特性父类引用子类特性...原创 2018-09-11 22:08:19 · 1577 阅读 · 4 评论 -
java多线程篇
*前言理解java线程前,我们需要分清 进程和线程和程序。程序:一段静态的代码,一组指令的有序集合 静态概念进程:操作系统调度程序 动态概念系统分配和调度资源的独立单位,一个进程有独立的代码和数据空间(进程上下文),一个进程即在操作系统中运行的一个任务(应用程序)线程:在进程内的多条执行路径线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本...原创 2018-09-04 08:54:28 · 137 阅读 · 0 评论 -
迭代器模式
迭代器模式(Iterator pattern)迭代器模式是一种行为型设计模式。迭代器模式用来顺序访问一个聚合对象中的个个元素,而又无需暴露该对象的内部表示。该模式的适用性1)访问一个聚合对象的内容无需暴露它的内部表示2)支持聚合对象的多种遍历3)为遍历不同的聚合结构提供一个统一的接口该模式的参与者1)迭代器(Iterator):定义访问和遍历的接口2)具体迭代器...原创 2018-09-12 14:05:22 · 131 阅读 · 0 评论 -
java多线程篇-生产者消费者问题
*前言生产者消费者问题是java多线程中五个同步问题的经典模型之。 问题描述:生产者生产产品,消费者消费产品,可以有一个或多个生产者生产产品供一个或多个消费者消费产品。为使生产与消费并发,在生产者和消费者之间建立共享的缓冲区,生产者生产的产品放入缓冲区,消费者从缓冲区中消费产品。生产者与消费者需保持同步,生产者不能在缓冲区已满时继续生产,消费者不能在缓冲区为空时消费产品。...原创 2018-09-04 19:32:05 · 314 阅读 · 0 评论 -
Java 内省
1. 什么是内省?内省是指计算机程序在运行时(Run time)检查对象(Object)类型的一种能力,通常也可以称作运行时类型检查。 不应该将内省和反射混淆。相对于内省,反射更进一步,是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。2. java中的内省机制内省(Introspector) 是对 JavaBean 类属性、事件的一种缺省处理...原创 2018-08-01 19:56:20 · 901 阅读 · 0 评论 -
jdk1.5,1.6,1.7,1.8特性
List<String> strs = new ArrayList<String>();//给集合指定存入类型,上面这个集合在存入数据的时候必须存入String类型的数据,否则编译器会报错转载 2018-08-01 11:37:49 · 509 阅读 · 0 评论 -
Java中的hashcode方法
1. 什么是hashcode方法?在java中hashcode方法是Object类的native方法,返回值为int类型,根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。2. hashcode方法的作用在java中hashcode是用于快速查找对象物理存储区使用的,主要作用于散列集合(HashSet,HashMap,HashTa...原创 2018-07-30 15:13:10 · 16147 阅读 · 0 评论 -
Tcp通信实践注册登入保存文件
Tcp通信实践注册登入保存文件服务端 和 客户端的交流原创 2017-12-31 17:39:03 · 343 阅读 · 0 评论 -
java集合框架实践简单扑克牌比较游戏
简单的扑克牌比较游戏1. 创建一副扑克牌,不考虑大小王2. 创建两名玩家,玩家至少要有ID、姓名、手牌等属性3. 洗牌,将之前创建的扑克牌顺序打乱(说明集合是有序的)4. 发牌,将洗牌之后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张5. 开始游戏,比大小,取两人各自的点数最大的牌进行比较,点数大的赢,若大小相同比花色(黑红梅方)package co...原创 2017-12-19 17:01:31 · 739 阅读 · 2 评论