导航:首页 > 源码编译 > 深度分析java源码

深度分析java源码

发布时间:2022-05-06 19:04:05

A. GitHub上面有哪些经典的java框架源码

B. 如何读JAVA源码

最好下个编辑器,editplus,gvim之类的,我用的是gvim,当然有myeclipse之类的软件就更好,将代码引进去,然后从主类开始,先看一遍主类,大体知道是干嘛的就好了,然后再细看,从上到下,当看到新类时,再转过去看那个类,看懂了再回主类继续,

C. JVM源码分析之一个Java进程究竟能创建多少线程

线程大家都熟悉,new Thread().start()即会创建一个线程,这里我首先指出一点new Thread()其实并不会创建一个真正的线程,只有在调用了start方法之后才会创建一个线程,这个大家分析下Java代码就知道了
Thread的构造函数是纯Java代码,start方法会调到一个native方法start0里,而start0其实就是JVM_StartThread这个方法!

D. 如何研究Java的一些框架源码

基本的思路就是先将源码构建出来,并且是可以运行的。比如CAS和activemq直接就是可以运行的。比如spring可以构建一个使用spring引用的web工程,然后去掉spring相应的jar包,改成spring的源码依赖。简言之就是能让源码跑起来。这样才能打断点,跟踪调试。
再往下就是核心部分了。
首先,最好是熟悉这个产品和框架的使用。如果都不会用就去看源码,会有很多地方理解不上去。所以一定要会用。不用每一个细节都会用,至少整体的工作流程要明白。
其次就是对于他包含了那几个部分有所了解,比如一个一个应用可能会有容器类,存储部分,网络通讯部分等组成,对整体框架结构要有所了解。
再次之就是可以提前找一些该框架深入的源码分析作为辅助理解看看。
最后就是看源码细节了。
一般来说,一个产品中都有几个做类似事情 的不同实现。比如activemq,有多个持久层的实现,包括jdbc,kahadb还有内存存储等。一般你抓住一个你最常用方式,比如jdbc看就好。其他的存储方式都是相同的存储接口的实现。

E. Java大神如何学习和分析Java框架的源码

1、拿到代码查看项目当中是否有readme这样的文件,如果没有查看是否有文档之类的
2、代码当中没有文档,那么就想你的同事或者其他人要这个框架的介绍或者资料
3、先请教别人这个框架的大体思路
4、自己独立去按照文档或者其他人说的思路去看代码
5、不懂的地方全部记录下面,一次行去问,有的时候很多问题在你看到后面的东西的时候就自然明白了
6、看懂了代码之后自己尝试着写一个,看自己的理解是否正确就这么多了。

F. java源代码分析 实在是不太会,求高手教教我。

packagetest2;

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Set;

publicclassJavaCodeAnalyzer{
publicstaticvoidanalyze(Filefile)throwsIOException{
//FileOutputStreamfos=newFileOutputStream("F;"+File.separator+"result.txt");
if(!(file.getName().endsWith(".txt")||file.getName().endsWith(".java"))){
System.out.println("输入的分析文件格式不对!");
}
InputStreamis=newFileInputStream(file);
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
Stringtemp;
intcount=0;
intcountSpace=0;
intcountCode=0;
intcountDesc=0;
Map<String,Integer>map=getKeyWords();
while((temp=br.readLine())!=null){
countKeys(temp,map);
count++;
if(temp.trim().equals("")){
countSpace++;
}elseif(temp.trim().startsWith("/*")||temp.trim().startsWith("//")){
countDesc++;
}else{
countCode++;
}
}
System.out.printf("代码行数:"+countCode+"占总行数的%4.2f ",(double)countCode/count);
System.out.printf("空行数:"+countSpace+"占总行数的%4.2f ",(double)countSpace/count);
System.out.printf("注释行数:"+countDesc+"占总行数的%4.2f ",(double)countDesc/count);
System.out.println("总行数:"+count);
System.out.println("出现最多的5个关键字是:");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
}
publicstaticvoidmain(String[]args){
getKeyWords();
Filefile=newFile("F://Test.java");
try{
analyze(file);
}catch(IOExceptione){
//TODO自动生成catch块
e.printStackTrace();
}
}
publicstaticMap<String,Integer>getKeyWords(){
Map<String,Integer>map=newHashMap<String,Integer>();
String[]keywords={"abstract","assert","boolean","break","byte","case","catch","char","class","continue","default","do","double","else","enum","extends","final","finally","float","for","if","implements","import","instanceof","int","interface","long","native","new","package","private","protected","public","return","strictfp","short","static","super","switch","synchronized","this","throw","throws","transient","try","void","volatile","while","goto","const"};
for(Strings:keywords){
map.put(s,0);
}
returnmap;
}
publicstaticvoidcountKeys(Strings,Map<String,Integer>map){
Set<String>keys=map.keySet();
for(Stringss:keys){
if(s.indexOf(ss)!=-1){
map.put(ss,map.get(ss)+1);
}
}
}
}

上班没啥时间了,还有点没写完,你在想想。

G. 我想自学java谁能给我推荐几本零基础学习的书吗

《深入理解Java虚拟机:JVM高级特性与最佳实践》
《HotSpot实战》
《Java并发编程实战》
《java多线程编程核心技术》
《Effective Java中文版》
《深入分析Java Web技术内幕》
《MySQL5.6从零开始学》
《Spring源码深度解析》
以上就是我推荐给Java开发者们的一些值得一看的好书。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。

H. java源码分析,最好的解答,应该最好逐句解答,这句什么要这样写,为什么不哪样写,看的人一样就看懂了。

但是如果连程序最基本的元素——标识符、关键字、……等等的都没有了解的话,那么最先开始看实例是比较困难的,哪怕是逐句解释。当然了,可以把概念放到实例中讲解,但是这样一来大量概念和其它信息的相互关联,未必能让初学者在一开始就理解实例程序。
我也觉得结合实例的基础讲解比价好,只是不能一味全部是实例,当然也不能全部是概念,要相互结合,适当地概括和总结。

阅读全文

与深度分析java源码相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:579
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:426
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:350