编程语言
文章平均质量分 92
该专栏主要介绍编程语言,如java,scala等的一些语言特性。
编程小王子啊
这个作者很懒,什么都没留下…
展开
-
理解Scala反射——TypeTag和ClassTag作用
一、理解反射1.1什么是反射反射是程序检查甚至可能自我修改的能力。 它在面向对象,功能和逻辑编程范例方面有着悠久的历史。 有些语言是以反射为指导原则而构建的,而有些语言是随着时间的推移,逐渐发展出反射能力。反射涉及具体化(即明确)程序的其他隐含元素的能力。 这些元素可以是静态程序元素,如类,方法或表达式,也可以是动态元素,如方法调用和字段访问。 通常根据执行反射过程的时间来区分编译时...原创 2021-06-22 03:14:31 · 1466 阅读 · 0 评论 -
Java编程学习笔记
1. java boolean不能强转为int,不能进行加减乘除操作,但是可以进行按位与或操作。java char 转 int 需调用Integer.parseInt()方法,如果直接调用char c = 'c', int i = c,得到的是变量c的ascll码值。char 在java中占用两个字节,可以进行加减乘除操作。2. java RTTIRTTI(Run-time Type Id...原创 2021-06-22 03:32:55 · 377 阅读 · 1 评论 -
Java jvm 学习笔记
2624/5000Java™2平台标准版(J2SE™)的一项优势是它可以执行自动存储管理,从而使开发人员免受显式内存管理的复杂性的影响。本文概述了Java HotSpot虚拟机(JVM)中的内存管理。Sun的J2SE 5.0版本。它描述了可用于执行内存管理的垃圾收集器,以及提供有关选择和配置收集器以及设置存储区大小的一些建议收集器操作。它还用作资源,列出了一些最常用的选项影响垃圾收集器的行为,并提供许多指向更详细文档的链接。第2节适用于对自动内存管理概念不熟悉的读者。进行了简短的讨论与要原创 2021-06-22 03:48:20 · 205 阅读 · 1 评论 -
Java 对象序列化学习笔记
1、什么是Java对象序列化?Java的对象序列化是将那些实现了Serializable接口的对象转化成一个字节序列,并能够在以后将这些字节序列完全恢复成原来的对象。简单来说序列化就是将对象转化成字节流,反序列化就是将字节流转化成对象。对象必须在程序中显示的序列化(serialize)和反序列化(deserialize)。2、序列化的作用序列化的主要用途主要有两个,一个...原创 2021-06-22 10:43:10 · 219 阅读 · 1 评论 -
Java 多线程学习笔记—— volatile、ThreadLocal、synchornized、Lock、ReentrantLock 加锁源码分析等
1. 当线程在没有同步的情况下读取变量时,可能会得到一个失效值,但至少这个值是由之前某个线程设置的值,而不是一个随机值。这种安全性保证也被称为最低安全性保证。最低安全性保证适用于绝大数变量,但是存在一个例外:非volatiel类型的64位数值变量,double和long。2. 当把变量声明位volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会讲该变量的操作与其他内存操作进行一起重排序。volatile变量不会被缓存在寄存器或者处理器不可见的地方,因此在读取volatile类型的变量原创 2021-08-19 07:53:24 · 458 阅读 · 1 评论 -
Java HashMap ArrayList 实现原理浅析
一、数组1. 数组常用排序算法有冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序。冒泡排序关键思想是相邻两个元素交换,所以有两层循环,外面循环控制交换趟数,里面循环控制相邻两个元素交换,里层循环从左想要扫描交换时,结果只能是最大的放在最右端,所以内循环关键在于j的终止条件:for(int j = 0; j < length - i - 1; j++)。冒泡排序基本时间复杂度都是o(n^2),至于o(n)的说法,是需要加1个flag,即第一次内循环结束时,如果没有元素交换,则flag=t原创 2021-06-25 16:32:48 · 345 阅读 · 1 评论