1.ideadebugjdkԴ?源码?
2.java编译器软件有哪些(java编译器推荐)
3.idea debug进入HashMap源码时传参不正确?
4.CodeWave最佳实践🔥源码导出本地测试各种阻塞搞不定,看完这篇实践轻松拿捏+1
5.å¦ä½ä½¿ç¨Android Studioå¼å/è°è¯Androidèªå¸¦ç³»ç»åºç¨
ideadebugjdkԴ?源码?
学会在idea(eclipse)中阅读、调试源码,源码是源码java程序员必不可少的一项技能。在idea中配完环境后,源码默认其实也是源码药品朔源码格式能够对jdk的源码进行debug调试的。但是源码无法在源码中添加自己的注释,无法添加自己的源码理解。如果干瞪眼看的源码话,可能过段时间,源码就忘记了。源码下面就介绍下,源码如何在jdk源码中为所欲为,源码像在我们自己的源码代码中一样写注释、调代码:
打开idea,源码选择Project->File->Project Structure->SDKs->Sourcepath,初始状态如下图 :
打开本地jdk安装路径,本处为E:\java\jdk8,将此路径下的src.zip压缩包解压到自定义的指定文件夹(可以在电脑磁盘任意位置),本处解压到同目录的jdk_source文件夹下,如下图:
继续在步骤1中的设置页面中操作,将E:\java\jdk8\src.zip通过右侧的减号将其移除;并通过右侧的加号,将解压文件夹E:\java\jdk8\jdk_source导入进来;点击apply,火车头采集 源码再点击OK。导入结果见下图:
这时,再重新打开jdk的源码类,我们就可以在源java文件中,添加自己的注释了。
一定注意:添加注释时,一定不要新加一行写注释。最好在一行代码的后面,使用//进行注释。否则行号和真正的jre中编译后的代码行号对应不上,如果对源码debug时,会出现代码运行和行号不匹配的情况
java编译器软件有哪些(java编译器推荐)
JAVA的编译器有哪些?
推荐Jcreator,它对于初学者是个很好的开发工具,又小运行也很快。它要用到JDK,大的IDE有JBuilder,netbean,sunstdio,eclipse。
编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序。一个现代编译器的主要工作流程:源代码(sourcecode)→预处理器(preprocessor)→编译器(compiler)→目标代码(objectcode)→链接器(Linker)→可执行程序(executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的数据恢复原理源码。编译器将汇编或高级计算机语言源程序(Sourceprogram)作为输入,翻译成目标语言(Targetlanguage)机器代码的等价程序。源代码一般为高级语言(High-levellanguage),如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Objectcode),有时也称作机器代码(Machinecode)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
Java用什么编译器?
常用的就是Eclipse,MyEclipse,idea这三种,MyEclipse相对于其他两种不是很常用
初学java用什么编译器?一eclipse/myeclipse
当年学习java,最先接触到的就是eclipse。喔了个噻,当时感觉eclipse好牛啊,无未来短线指标源码有好多先进的功能:
1.可以方便地进行包管理。可视化窗口,创建目录和文件都很方便,移动包,复制包等都可以方便的进行。
2.热键操作。复制保存啥的就不说了,代码提示这个功能还是很不错的,在写着写着,脑子突然短路的时候,可以通过快捷键把脑子快速带回来。
3.代码调试。有时候,写着写着代码,突然间就报错了,不知道哪里错了,咋整,这时候,如果使用编辑器的话,就可以使用debug模式进行调试了,找出问题所在,解决问题。化妆品公司源码
4.一些代码管理等插件。在企业中肯定要用到代码同步工具,svn或者git,在编辑器中会提供这样的插件,方便代码的管理。
二idea
相比eclipse和myeclipse,idea的基本功能差不多。
1.包管理:也是有方便的包和资源管理。
2.热键:也是提供热键管理的,而且还很好用。
3.代码调试:debug模式用起来也是很舒服。
4.插件方面:也是支持一些插件的,如热部署插件等。
三比较
1.操作:两个软件有不同的快捷键,虽然idea兼容部分eclipse快捷键,但是不建议这样做。
2.资源消耗:idea更能吃内存啊呦喂,电脑配置低的伤不起啊。eclipse要更柔和一点。
3.是否免费:eclipse是免费的,myeclipse和idea是要付费的呦。但是嘛,你懂得。
4.专业性:idea应该是更专业的,有更高的代码更新机制和代码提示功能。但是eclipse涉及的范围更广,除了java和可以编辑其他语言的项目。
四建议
1.如果电脑配置比较低,建议使用eclipse,并且使用较低版本的,这样,电脑不会太吃力。如果配置比较高,比如,G内存,固态硬盘,那就使用idea吧。
2.没有最好的编辑器,只有最适合自己的编辑器。任何一个编辑器用习惯了,都是很不错的。
希望对您有所帮助!~
java有哪些编译器?JCreater、JBuilder、eclipse、myeclipse、netbean这几个是主流,eclipse和myeclipse(eclipse的扩展功能更多)是主流中的主流,JCreater一般是才学java基础的时候用(其实一点都不好用),学校一般都用eclipse和myeclipse,所以建议你从这两个中选择
idea debug进入HashMap源码时传参不正确?
我测试了下面的代码:分别在这四个位置打了断点以监控程序的运行情况,debug后,进入第一次断点的位置为:
与题主说的情况一致,而没有进入我的第一个断点进行输出,而后F9:
发现还是在put文件,经多次F9之后,可以看出来,其实java的jvm在启动的时候,在底层也自行调用的put方法,将jvm所需要的一些动态库、jar包put到某个map之中,具体是哪个map看不出来。要等到jvm底层将所有东西准备好后,才进行main函数。
jvm准备需要put多少次我就不数了,现在我先把put的断点取消,让程序debug到我的第一个断点处:
这个时候将put方法打上断点,F9发现:
奇怪的key值增加了,它将我的classes编译目录丢进去了,继续F9,和上一步差不多,再再次F9,终于来了:
继续F9,终于到达了我的第二个断点:
继续F9,这次没有put奇怪的东西了:
继续:
最后:
然后程序退出:
综上,jvm在启动的时候会在程序背后隐式地将一些配置啊什么的通过put方法放到某些地方,不用关心,你遇到的情况是正常的也是正确的
CodeWave最佳实践🔥源码导出本地测试各种阻塞搞不定,看完这篇实践轻松拿捏+1
使用 CodeWave 的用户如需导出源码在本地启动测试,可以参考以下步骤。
环境准备:若要在本地编译执行,用户本机需具备以下环境:1. JDK1.8;2. Maven;3. IDEA(可选)。
如何导出源码?在 IDE 页面,点击右上角“更多”,选择“导出和部署”,然后点击“导出应用”,选择“源码”,“后端代码+前端静态文件”,其他默认即可。
源码导出成功后会自动下载,通过浏览器下载记录可以查看。
源码结构:提取下载的源码压缩文件,得到一个 Maven 项目结构,如需了解详细的源码结构,请前往文档中心查看。
安装依赖:项目依赖分为公共依赖和二方依赖,公共依赖通过阿里云镜像仓库安装,二方依赖通过脚本自动安装。
公共依赖的安装方法如下:在项目根目录下打开命令行窗口,执行命令 mvn dependency:resolve -Dmaven.repo.local=./repository -s ./settings.xml。
二方依赖的安装方法如下:在 dependency 目录中会看到有两个脚本,install-dependency.bat 和 install-dependency.sh,分别适用于 windows 和 linux/mac 用户。
执行 sql:在源码 src/main/resources/db 目录下,如果存在 sql 文件,则需要在数据库中执行。
修改配置:如要本地运行项目,需要修改一些配置文件,如导出开发环境为 src/main/resources/application-dev.yml,导出生产环境为 src/main/resources/application-online.yml,需要修改的配置项包括数据库地址、数据库用户、数据库密码、应用启动端口、应用文件存储类型等。
编译源码:在源码根目录下打开命令行窗口,执行命令 mvn clean package -Dmaven.repo.local=./repository -s ./settings.xml。
运行项目:执行命令 java -jar target\xxx.jar,启动成功后,浏览器访问 localhost: 即可访问。
对于有开发经验的同学,可以借助 IDEA 把项目运行起来,在 IDEA 加载源码后,打开 com.community1.nostest.Application,点击 debug。
å¦ä½ä½¿ç¨Android Studioå¼å/è°è¯Androidèªå¸¦ç³»ç»åºç¨
å¼åè°è¯ç¯å¢: Ubuntu .ï¼openJdk 1.7ï¼Android Studio 1.0.2ï¼android-5.0.1_r1æºç
ç±äºASæ¯åºäºIntelliJ IDEAå¼åçï¼æ以æ¬æä¹éç¨äºIntelliJ IDEA
ä¸ãä¿®æ¹Android Studio(以ä¸ç®ç§°AS)çå åé ç½®
å 为å¨å¯¼å ¥æºç æ¶éè¦æ¶è大éå åï¼æ以å ä¿®æ¹IDEA_HOME/bin/studio.vmoptions(xçæºå¨ä¿®æ¹studio.vmoptions)ä¸-Xmså-Xmxçå¼ãææ¡£ä¸ä½¿ç¨çæ¯m, å¯èªè¡ä¿®æ¹ã
äºãé ç½®ASçJDKãSDK
å¨IDEä¸æ·»å ä¸ä¸ªæ²¡æclasspathçJDK, è¿æ ·å¯ä»¥ç¡®ä¿ä½¿ç¨æºç éçåºæ件
并å°å ¶ä½ä¸ºè¦ä½¿ç¨çSDKçJava SDKãå¦ä¸å¾
ä¸ãçæå¯¼å ¥ASæéé ç½®æ件(*.ipr)
â ç¼è¯æºç (为äºç¡®ä¿çæäº.javaæ件ï¼å¦R.javaï¼å¦æç¼è¯è¿ï¼åæ éå次ç¼è¯)
â¡æ£æ¥out/host/linux-x/framework/ç®å½ä¸æ¯å¦æidegen.jar
å¦æidegen.jarä¸åå¨ï¼æ§è¡:
mmm development/tools/idegen/
å¨5.0.1çæºç ä¸ä¼çæres.javaçæ件夹ï¼å¯¼è´idegen.jarè¿è¡æ¶æFileNotFoundExceptionï¼è¿æ¯idegenç代ç ä¸å¤ä¸¥è°¨é æçã
æçå享éæä¿®æ¹è¿ä¸ªbugçpatchï¼æè ç´æ¥ä½¿ç¨æå享çidegen.jarã
â¢æ§è¡
development/tools/idegen/idegen.sh
çå¾ åºç°ç±»ä¼¼ä¸é¢çç»æ:
Read excludes: 5ms
Traversed tree: ms
è¿æ¶ä¼å¨æºç çæ ¹ç®å½ä¸çæandroid.ipråandroid.iml两个IntelliJ IDEA(ASæ¯åºäºIntelliJ IDEA社åºçå¼åç)çé ç½®æ件
Tipsï¼
ASå¨å¯¼å ¥ä»£ç æ¶æ¯è¾æ ¢ï¼å»ºè®®å ä¿®æ¹android.imlï¼å°èªå·±ç¨ä¸å°ç代ç excludeåºå».å¯ä»¥ä»¿ç §è¿æ»¤.repoæ件夹çè¯æ³,å¦:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
è¿æ ·å¨å¯¼å ¥æ¶å°±ä¼è·³è¿abiåartæ件夹.è¿æ»¤çè¶å¤ï¼ASçå¤çé度就ä¼è¶å¿«.
â£å¨ASä¸æå¼æºç æ ¹ç®å½ä¸æ°çæçandroid.ipr
å¦æå¨å¯¼å ¥æ¶ASåºç°
å建议æç §å ¶ç»å®ç解å³æ¹æ³æ¥è§£å³(ç½å:/display/IDEADEV/Inotify+Watches+Limit)ï¼å ·ä½å 容å¦ä¸å¾:
åã解å³æºç ä¸è·³è½¬é误é®é¢
â 为å½åå·¥ç¨è®¾ç½®æ£ç¡®çSDKåJDK
â¡è®¾ç½®'Modules'çä¾èµ
å å°ææä¾èµå æï¼åªçä¸ä¸å¾'1'ææåç两个(注æ:è¿éå é¤å ¨é¨åªæ¯ä¸ºäºæ¹ä¾¿ãå¦æç¡®å®ç¨å°äº.jar,å¨å°å®ä»¬çè·¯å¾æ·»å è¿æ¥å°±å¯ä»¥äº.
å¦:5.0.1çContactsCommonç¨å°äºgeocoder-2.9.jarålibphonenumber-6.2.jar)
ç¹å»ä¸å¾ä¸'2'æåç'+'并éæ©ä¸å¾'3'æåç'Jars or directories'é项ï¼ä¾æ¬¡å°frameworksåexternalæ件夹添å è¿æ¥.å¦:
å ¶å®çæ¬ç代ç å¨æ·»å frameworksæ¶å¯è½ä¼æ¾ç¤ºæ:
没æå ³ç³»ï¼åªæ¯æ¾ç¤ºé®é¢ï¼ç¹å»OKè¿æ¯ä¼æframeworksè·¯å¾æ·»å è¿å»ç.
å¦æè¿æ代ç 跳转é误ï¼è¯·ä»¿ç §ä¸é¢çæ¥éª¤å°ç¸åºä»£ç çè·¯å¾æjaræ件添å å°å ¶Dependenciesæ ç¾é¡µä¸å³å¯.
äºãDEBUGæºç
æ们å¯ä»¥éè¿ç»åå¯¼å ¥çå·¥ç¨å¨'Modules'ä¸æ·»å 'Android Framework'æ¥è®©ASå°å®ä½ä¸ºä¸ä¸ªAndroidå·¥ç¨ï¼ä»èæ¹ä¾¿æ们è°è¯ä»£ç .
å¯ä»¥æç §ä¸å¾ä¸'1'å'2'æ¥æ·»å Android Frameworkæ¯æ.
å¨ä»£ç ä¸å æç¹ï¼ç¶åéæ©'Run'->'Attach debugger to Android process'æè ç´æ¥ç¹å»ä¸å¾æ示çå¾æ
å¨å¼¹åºçéæ©è¿ç¨(Choose Process)对è¯æ¡ä¸ï¼å¾éæ¾ç¤ºææè¿ç¨ï¼éæ©è¦DEBUGç代ç æå¨çè¿ç¨ï¼ç¹å»OKå³å¯.
å ãå ¶å®
代ç ä¸å¾å¤å°æ¹æ示Call requires API Level x.... åºç°è¿ä¸ªé®é¢æ¯å 为ASå°æ们çå·¥ç¨å½åå®ååºç¨ç¨åºå·¥ç¨äºï¼ä¸æºç ä¸æ²¡ææå®minSdkVersion.
æ们åªéå¨æºç æ ¹ç®å½å ä¸ä¸ªå£°æminSdkVersionçAndroidManifest.xmlæ件å³å¯(å享äºä¸ä¸ªAndroidManifest.xml)ã
ä¹å¯ä»¥èè使ç¨build.gradleæ¥è§£å³è¯¥é®é¢ã