前言首先问大家一个问题,我们开发好 Java 代码是如何运行的?我们写了这么多年的代码,对于代码运行的流程是否清楚呢?是不是在 ide 中点一下 Run 启动就完事了,我们写的代码直接就跑起来了,其实在背后编译器和虚拟机默默的在帮我们承受了这一切。Java 程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码2、字节码由 Java 虚拟机解释运行。因为 Java 程序既要编译同
转载
2023-09-18 17:35:58
262阅读
Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。一、为什么要加密?对于传统的C或C 之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,但与此同时
转载
2008-05-20 05:44:00
149阅读
在java的集合中,List接口继承Collection接口,AbstractList类实现了List接口,在AbstractList中的内部类Itr实现了Iterator接口ArrayList实现List接口并继承AbstractList类,结构图如下:(图片出自网络)Iterator接口源码:public interface Iterator<E> {
boolean ha
转载
2023-07-06 13:07:20
93阅读
• 字符串乱码 ,字符串做二进制转化,由于不同系统默认的编码,所以出现乱码,解决方式是指定编码。
• 首字母大小写,name.substring(0, 1).toLowerCase() + name.substring(1);name.substring(0, 1).toUpperCase() + name.substring(1)。
转载
2023-07-25 12:17:46
107阅读
第一章 Java基础之了解Java 文章目录一、什么是Java?二、Java编译过程?三、Java的特点及Java开发所需要的环境? 一、什么是Java?Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优
转载
2023-07-10 12:20:07
47阅读
执行策略:线程执行的方式串行执行比如:医院给病人看病的时候,可以让所有的病人都拍成一个队形,让一个医生统一的看病。医生:线程。病人看病:任务这种一个医生给一群站好队形的病人看病--映射到java就相当于:单线程串行执行任务映射到我们java中的话就相当于线程执行任务。串行执行的缺点很明显。例如:就是假设前面有一个病人非常的慢,是一个话唠,本来就是一个小感冒,就和医生唠了一天,那后面的人肯定都疯了。
转载
2024-06-03 07:19:59
38阅读
Java中,除了8种基本类型,最长用的应该就是String类了。那么我们来看看JDK中的源码是怎么建造String、StringBuffer、StrinBuilder一系列类的。 java.lang.String在JAVA里,String类是一个非常特殊的类,我们来看一下它是怎么来表示一个字符串的。首先来看一下它的比较重要的几个属性,源码如下:/** The value is used
转载
2023-07-20 19:56:49
53阅读
Collection接口源码分析int size();获取集合长度boolean isEmpty();集合是否不包含任何元素boolean contains(Object o);集合是否含有该元素 (o==null?e==null:o.equals(e))Iterator<E> iterator();返回了一个迭代器,这个迭代器的元素顺序是否有保证由各实现类自己决定Object[]
转载
2024-01-15 20:51:01
45阅读
1、Java的等待通知机制的发展场景:我们有时会遇到这样的场景:线程A执行到某个点的时候,因为某个条件condition不满足,需要线程A暂停;等到线程B修改了条件condition,使condition满足了线程A的要求时,A再继续执行1.1、自旋实现的等待通知最简单的实现方法就是将condition设为一个volatile的变量,当A线程检测到条件不满足时就自旋public class Tes
转载
2023-08-11 20:12:13
56阅读
java语法解析器的核心类是com.sun.tools.javac.parser.JavacParser,令人惊讶的是java并没有使用antlr这样现成的的工具,而是选择手写。推测可能是为了性能的考虑吧。接下来,让我们膜拜下大师的代码。JavacParser.parseCompilationUnit()是java语法分析的入口方法。parseCompilationUnit()的返回结果是一个JC
转载
2023-06-14 18:30:39
113阅读
List作为一个集合类的接口,我们实际使用中通常是使用其实现类,常用的实现类有ArrayList、Vector、LinkedList,以及Vector的子类Stack。1. Collection接口List接口其实是继承自Collection接口,先来看下它的继承、实现关系:从该图中可以看出最高接口为Iterable,该接口中只有一个方法为iterator(),查看下JDK源码,该方法返回一个It
转载
2023-07-21 12:53:28
41阅读
目录前言1. 属性2. 构造函数3. 方法3.1 常用方法3.2 磁盘与临时文件3.3 其他 前言磁驱动分割符中,在unix中使用/表示,在window中使用\\\查看其源码,实现Serializable, Comparable的接口public class File
implements Serializable, Comparable<File>
{对于Serializa
转载
2024-03-31 14:47:13
32阅读
网友解答:谢邀~~关注极迭代,和小伙伴一起看↗↗↗很高兴看到你开始对JDK源码开始感兴趣,这表示你已经有了进一步学习其他牛人是如何编程,以及深入了解原理的想法。JDK包中自带了源码包在我们下载安装的JDK包中,其实已经自带了源代码压缩包,名为src.zip解压出来就能看到各个以.java结尾的源码文件Eclipse可以关联查看源码来回打开源码文件很麻烦?不要着急,Eclipse可以进行自动的源码关
转载
2023-07-17 20:11:54
55阅读
最新在整体回归下java基础薄弱环节,以下为自己整理笔记,若有理解错误,请批评指正,谢谢。java.lang.Object为java所有类的基类,所以一般的类都可用重写或直接使用Object下方法,以下为逻辑结构图,没有画类图(注: 以上绿色方法为 非native方法 粉色方法为 native方法)那么问题来了 :1、what is a native object? 本人
转载
2023-07-06 16:58:08
67阅读
我们先了解一下JAVA的一些概念:1.JVM:是指JAVA虚拟机,用于提供java解释环境,形成可执行文件。不同平台的JVM各有不同,但均提供相同的接口。2.JRE:即JAVA运行环境。3.JDK:核心开发包,提供java编译器、运行相关的环境、工具和类库。4.编译型语言和解释型语言:编译型语言和解释型语言JAVA程序的运行原理:1. 源文件(.java源代码)通过编译器编译成字节码文件class
转载
2023-07-11 12:08:40
81阅读
好吧,我承认我比较懒~ 但是发现不把一些学习成果与工作经验记录下来,我会慢慢将它们遗忘掉,最后一无所有。新年回来,2011从今天开始重新积累吧。
市面上的技术书籍琳琅满目,但哥坚信“有代码有真相”,所以,源代码才是最好的学习材料,先不说Java庞大的开源社区提供的充斥着各种设计模式与创新思路的框架代码,就JDK源代码本身就是一部博大精深的技术圣经。去看
转载
2024-02-25 15:24:41
26阅读
package java.util.concurrent.locks;
import java.util.concurrent.TimeUnit;
import java.util.Date;
/**
* Condition将对象monitor方法(wait, notify,notifyAll)分解成不同的对象,
* 通过将它们与任意的锁实现结合使用,从而产生每个对象拥有多个等待集的效果。
转载
2023-09-01 09:02:40
47阅读
Java-AQS同步器 源码解读-条件队列Condition下AQS Condition-下AQS Condition的实现AQS中的ConditionObject和node条件队列-await源码分析0-await方法1-addConditionWaiter2-fullyRelease3-isOnSyncQueue4-while方法体内部5-while之后的方法6-await 总结条件队列-s
转载
2023-11-05 19:00:23
58阅读
java源码之Collection前言继承关系方法sizeisEmptycontainsiteratortoArrayaddremovecontainsAlladdAllremoveAllremoveIfretainAllclearequalshashCodespliteratorstreamparallelStream 前言collection作为list,set以及queue的老大哥,对其的
转载
2023-10-17 20:19:15
56阅读
最近后台收到很多粉丝私信,说的是程序员究竟要不要去读源码?当下行情,面试什么样的薪资/岗位才会被问到源码?对此,我的回答是:一定要去读,并且要提到日程上来!据不完全统计,现在市面上不管是初级,中级,还是高级岗,面试的时候都有可能会问到源码中的问题,它已经成为程序员常规必备的一个技术点。如果你当下想通过一个面试,或者想把中级薪资要到相对于比较高的话,源码这块就必须要会。但话又说回来,源码这玩意确实晦
转载
2023-07-21 17:34:31
0阅读