java语言编程基础
文章平均质量分 78
记录关于java语言学习的经验。
TechMix
偏信则暗兼听而明。
展开
-
【java面试题】实现equals(Person person)方法的Person存入HashSet无法排重!
先看下面的代码,想下会输出什么?有哪位大佬知道是为什么?原创 2024-01-20 21:05:20 · 424 阅读 · 0 评论 -
从源码角度学习ThreadLocal原理
1.ThreadLocal基本介绍相信使用java语言做开发的同学,肯定多或多或少了解过ThreadLocal,简单来说就是一个“以当前Thread对象作为key的key-value存储结构,能实现多线程的读写安全”。那么他究竟是怎么实现的呢,它的实现源码并不是很长,下面直接从源码上来分析。先看一个使用ThreadLocal存取数据的例子:1.1 直接使用无参构造函数创建对象//使用无参构造函数创建ThreadLocal实例,默认值为nullfinal ThreadLocal<Integer原创 2020-05-17 20:50:50 · 164 阅读 · 0 评论 -
Java线程内存模型的理解(一)
1.概述 在Java中,因为有jdk的封装,线程使用起来很方便,new一个线程然后start就好了。但是由于存在多线共享同一个数据的原因,经常会有多线程安全的问题。比如在A线程修改了某个变量的值,B线程是不知道得,等到会写到线程的主内存时,最终变量的值已经不是正确的了,再比如,整型变量a,在两个线程中进行自增操作(a++),最后也不会是我们...原创 2020-03-05 22:18:58 · 339 阅读 · 0 评论 -
Java反射基础总结
1.前言Java语言特性中,最经常的一个就是反射机制,最近开发有用到,所以再这里整理一篇学习笔记。简单理解反射就是在运行时获得程序中每一个类型的成员和成员的信息,即使是private修饰的也是可以获取到的。2.基础使用基本API//java.lang.Class类中://1.根据类全限定名获取类的Class对象public static Class<?> forName...原创 2019-10-20 16:43:29 · 460 阅读 · 0 评论 -
jdk7之前,匿名内部类访问局部变量加final修饰的问题(综合两种说法)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-09-15 16:57:54 · 538 阅读 · 0 评论 -
java虚拟机之运行时内存分区理解
一.jvm内存区域的划分二. 对象的四种引用类型 1.强引用 2.软引用: SoftReference 3.弱引用: WeakReference 4.虚引用: PhantomReference 5. 四种类型引用特性总结原创 2019-07-20 16:39:52 · 365 阅读 · 0 评论 -
jvm类加载机制学习基础(一)
一.类加载机制理解 二.什么情况下会触发类的加载?三.类加载会经历哪些阶段?四. 类加载时类成员的加载顺序五. 类加载器的双亲委派模型原创 2020-12-25 21:06:12 · 1669 阅读 · 2 评论 -
java内存分配和区域划分
java中可以存储数据的5个地方: 1.寄存器: 最快的存储区,位于处理器内部。但是寄存器的数量很有限,所以需要根据需求进行分配,不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2.栈: 位于通用RAM(随机访问存储器)中,速度仅次于寄存器。 3.堆: 一种通用的内存池(也位于RAM区),用于存放所有的Java对象。 4.常量存储: 常量通常直接存放原创 2016-11-13 13:49:53 · 356 阅读 · 0 评论 -
Java高级之虚拟机垃圾回收机制
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved !区别于C语言手动回收,Java自动执行垃圾回收,但为了执行高效,需要了解其策略,更好的去应用。以下用HotSpot虚拟机为例,选取几个有意思的参数讲一下1、默认GC时间为总时间的1%。也就是说GC线程设置有超时时间,防止卡死或过多妨碍主线程。2、最高最低内存空闲比例转载 2017-01-04 00:37:31 · 291 阅读 · 0 评论 -
java的异常处理机制要点总结
1.try-catch捕获异常类型的顺序: 由子类到父类的顺序,不能错。 在最后一个catch语句中捕获Exception异常,父类异常在子类的下面,顺序不能错,否则子类异常没有机会被处理。 异常处理方式: 2.try-catch捕获异常和throw抛出异常的区别: (1)try-catch 捕获,异常由被调用者自己处理。 (2)throw抛出异常,异常由调用者处理,谁调用谁原创 2016-11-13 14:05:00 · 423 阅读 · 0 评论 -
Java中重载的匹配规则
重载在Java中是常客,特别是在构造方法中,但是如果要仔细考虑内部的实现规则,内容还是很多的,最近在复习这个部分,所以对重载的使用做了以下整理: 1.涉及基本类型的重载 我们都知道基本数据类型从一个“较小”的类型自动提升为“较大”类型,其中会发生一个自动的类型转换,但是如果在函数重载中会怎么样呢? (1)如果传入的参数数据类型小于方法中声明的形参类型,实际的数据类型会被提升。比如cha原创 2016-10-12 16:44:05 · 2035 阅读 · 0 评论 -
java中的finally用法
笔试题 java处理异常采用try-catch-finally语句捕获处理异常,finally常用来处理一些后续的工作,今天遇到了一个很容易错的知识点,我觉得有必要写点东西做一个总结。 先提一下return语句的用法,return不管实在c语言还是在c++中都是返回函数值的语句。我们都知道return语句的一般作用: (1)向方法返回一个值; (2)结束当前的方法。 ...原创 2016-08-12 01:01:12 · 16064 阅读 · 6 评论 -
Android中的回调机制
Android中的回调机制使用java的回调机制已经很久了,就Android开发来说,回调机制在异步任务上使用的很频繁,但是其本质上的原理是什么,很好奇,但是一直无从下手,先分析使用java回调产生的几种现象:1.当需要知道一个耗时任务完成的结果时,不用去轮询查看进度或者等待到任务完成了,而是从阻塞等待、主动检查变成被动接收任务的结果了。比如:下载一张图片,完成时从UI上给一个反馈;...原创 2016-08-06 11:05:32 · 965 阅读 · 0 评论 -
java中short s1 = 1;s1 = s1 + 1;会出错而short s1+=1;能编译通过的原因
最近看到一道关于java中运算符和类型转换的笔试题,虽然很基础,但是也是一个很经典的问题,所以在这里进行总结。问题描述: 问: (1) short s1 = 1; s1 = s1 + 1; (2) short s1 = 1; s1 = s1 + 1; 编译运行会有什么错误,为什么?对第(1)问题进行分析得原创 2016-06-08 17:33:03 · 1930 阅读 · 0 评论