s***x 发帖数: 34 | 1 Hi all,
Does anyone know if there is an elegant way to get the bytecode
(as a byte array) of a class given a java.lang.Class object?
Thanks a lot! |
|
z*******n 发帖数: 1034 | 2 New Android Compilers for More Performance by Abel Avram on Dec 04, 2014
Eric Lafortune, Technical Director of Saikoa, maker of DexGuard, has
discovered new tools in the SDK for Android 5.0 Revision 1 (API 21.1),
namely two compilers called Jack and Jill. These tools are meant to
streamline the compilation process for Android.
Google introduced the Android RunTime (ART) as an experimental utility in
KitKat, and made it the default runtime for Lollipop, replacing Dalvik. ART
takes DEX bytecode an... 阅读全帖 |
|
N*D 发帖数: 3641 | 3 scala不是wrap java,it跟java是parallel的。比如scala里面没有primary type,即
使x = y + z也是三个objects。但compile成byte code后,和java的是一摸一样的。不
存在wrap一说。JVM类似提供了一个ISA,scala实在没必要转成java first,当然it可
能会使用一些java compiled bytecode的template,而且只会使用安全高效的。比如it
取消了static,加入了singleton的object,他compile出来的bytecode肯定是安全和高
度优化的,会比大多数的developer写出来的强。
俺也是在学习过程中,一些拙见,呵呵。
compiler效率在scala中不是priority。我记得看到一篇文章说
作者想把直接compile成bytecode改成compile成java source,
然后用javac。其实scala是wrap java data types,会慢一些,
但因为是statically typed,还是比jython/jruby之类的快很多。 |
|
b***i 发帖数: 3043 | 4 UI按钮是让线程优美退出。本来这个while是一直运行的。
具体的例子,比如这个线程是一个lua的bytecode解释程序,那么while的条件就是看看
有没有下一个bytecode了,或者是不是要退出了。如果没有其他的代码了,或者要退出
了,这个解释程序的线程就退出。这个UI的按钮就是告诉线程在还有bytecode的代码的
时候就退出。
void luaInterpreter(...){
while(!quit && hasNextByteCode()){
processNextByteCode();
}
...
}
quit变量和Lua的解释程序的过程没有任何关系。所以我觉得reordering在这个应用里
面是没有关系的。另外bool在一个线程里写其他里读也不用保护。就剩下cache
coherence问题了。好像没有人提出过。 |
|
w**z 发帖数: 8232 | 5 还是学Java 吧, 虽然facebook will try to compile php to run on VM,并不是说
直接用Java, 但Java clearly is more popular choice of programming language
than others. And more clearly, JVM is the most popular platform.
http://nerds-central.blogspot.com/2012/08/facebook-moving-to-jv
Facebook Moving To The JVM
The Big Guns get behind mlvm. I mean, BIG like GE, and Facebook!
"Are interpreters immoral?" A question I posed some months ago which might
soon become irrelevant. General purpose interpretors are about to go t... 阅读全帖 |
|
h******u 发帖数: 155 | 6 你用 Java 1.x compiler编译出的bytecode,然后放在 1.y VM 上面跑 (x > y), VM的
verifier就会告诉你,我们不支持这个版本的bytecode |
|
m**c 发帖数: 90 | 7
I don't not quite understand with the translated terminology (in Chinese) as
you mentioned above :-) Let's use an example: you have "my.jar", if you
include "my.jar" in CLASSPATH, every classes (compiled bytecode) in "my.jar"
will be loaded to JVM:
set CLASSPATH=\my.jar (Windows)
export CLASSPATH=/my.jar (Unix)
Since "src.zip" only contains the source code (*.java) not compiled bytecode
(*.classes). Therefore, you cannot add "src.zip" to CLASSPATH (in fact, you
could do it, but J |
|
h******b 发帖数: 312 | 8 use retro guard:
Java bytecode (.class and .jar files) contains much of the information in your
Java source files, leaving your products exposed to reverse engineering.
RetroGuard, a general purpose bytecode obfuscator, is designed to fit
effortlessly into your regular build and testing process, providing peace of
mind that your valuable Java code is more secure against decompilation and
other forms of reverse engineering.
http://www.retrologic.com/ |
|
n*****r 发帖数: 9 | 9 Yeah, after reading the bytecode,
the two methods(overidden one in derived and the new one) have the same
bytecodes:
getfiled #3
Then what does the data structure to link methods and instances looks like
in JVM? |
|
L*********r 发帖数: 92 | 10 runnable interface 不是什么hook, 只是一个pluggable pattern对于thread class,
JVM知道一个class 是thread是从你的thread instance.
Thread class compile后是pure java bytecode. JVM会对bytecode作native image.
Java thread programming很容易, 如果要考虑multi-threads synchronization 和
communication 才需要更深的了解.
闻道有先后,术业有专攻,如是而已 |
|
w*********e 发帖数: 5286 | 11 别浪费时间了,他不要说没有接触过数据库内核code,连derby能作什么都没有搞清楚
,只会硬凹引用那个wiki “2m bytecode”来论断数据库的复杂度,
其实就算依照他自己的对“核心”的定义,“2m bytecode”也远远不够。 |
|
c*****t 发帖数: 1879 | 12 没必要盲目的崇拜这种东西。你这么崇拜说明你对做这些东西
需要的代码量还没没有直接的概念。说明你自己很少搞个 project 。
Linus 在搞 Git 之前已经用了几种 distributed SCM ,才能够有强烈的欲
望搞个自己的东西,而且方方面面已经考虑了很久,所以才能快速写出一个。
如果你让他搞个他一点不熟悉的东西,他也没辙。
其实 Java 的最大优点就是,让程序员更专注整体架构,而不是某些跟逻辑
无关的细节(C++ 的很多就是这些无聊的细节)。加上 Java 的 project 相
对周期短很多,相对来说,Java 能让程序员更快的理解以前很多需要长时间
理解的概念。
所以我建议一味搞 C/C++ 的同学学习下 Java 。免得明察秋毫,不见舆薪。
而且术业有专攻。goodbug 搞 Java server 方面也 N 年了。真要有 Linus 和
他对比 web service 的东西,要我就更听他一些。而且相信 goodbug 要写
个类似 Git 的话,也不成问题,只不过没必要而已。
就我学过 Basic / Pascal / C / C++ / Java / C#... 阅读全帖 |
|
w***g 发帖数: 5958 | 13 JVM本来是被设计成跑在微波炉上的。等generic需求出现的时候发现如果要做reified
generics的话就得改bytecode specification,老的JVM就没法跑新的bytecode。这个
是所谓的backward compatiblity的问题。Java是1994年发明的。2004年引入generics
。现在是2014年。Scala是JVM上的语言,也无法实现reified generics。当年支持
backward compatibility的决定是对是错应该没有一个公认的看法吧。不然OpenJDK也
不会搞出一个改进JVM的project来了。不过现在再改我倒觉得真的是晚了。 |
|
w********m 发帖数: 1137 | 14 node太弱了,跑个递归的Fibonacci都跑不动。
脚本的库都是编译型语言,速度不差。就像linux下的python的库是C bytecode,spark
下的Python的库是java bytecode。 |
|
c******n 发帖数: 4965 | 15 u need to read up on bytecode and bytecode generation |
|
|
x****u 发帖数: 44466 | 17 我让你把python程序翻译成java bytecode,规则复杂吧,你玩不过编译器生成器。。。 |
|
h******n 发帖数: 3599 | 18 如果说, 某种语言的某个具体实现implementation 是解释性的, 可以这么说,
bytecode stream更加类似.net 和 java这种通用虚拟机器码的, 比高级解释语言效率高
, 比native compiled language不如 |
|
z**m 发帖数: 3080 | 19 java是怎么被机器看懂的?
java经过编译成为bytecode,但这个也只能是java虚拟机能看懂 机器还是看不懂啊。 |
|
w***u 发帖数: 17713 | 20 都牛B哄哄地完成了课程大作业,还有的上过高级课程,甚至论文是搞操作系统的。
我这有个让你发大财出大名的想法,谁接?
现在移动操作系统都缩减到两个了,一个iOS,一个Android,这两个都是商业大陷阱,
缺点很明显,一个封闭系统,拼了命的收钱,写个helloworld给朋友用都的上苹果的贼
船,一个拼了命地收集用户信息,还让app时不时乱运行。你只需要一个简单系统可以
运行某个易开发的语言bytecode,比如java,python。push notification,激活,不
怎么费电,还要死得快。启动运行,后台运行要被允许,数据和硬件的访问要明明白白
干干净净,偷偷摸摸进村的不行。这么的简单干净的系统很难找,复杂的进程控制,进
程间通信啊,能少就少,就一个手机,我根本就不想他每秒钟把我的经纬度高度报告给
我们家的核武器控制服务器,然后服务器算出我旁边有没有阶级敌人,然后fire
missile!一个非常轻的操作系统,保证打电话,能查个天气股价照个像就够了,待机一
两个星期。24小时微信和我屁关系都没有。
我想我这样的用户很多。你们open source一个? |
|
d*********8 发帖数: 2192 | 21 The original and reference implementation Java compilers,
virtual machines, and class libraries were originally released by
Sun under proprietary licenses. As of May 2007, in compliance with the
specifications of the Java Community Process, Sun relicensed
most of its Java technologies under the GNU General Public License.
Others have also developed alternative implementations of these Sun
technologies, such as the GNU Compiler for Java (byt... 阅读全帖 |
|
s***h 发帖数: 487 | 22 Java 当初的好处是 bytecode portable,但现在 hardware acceleration 以及 low
latency 的要求,这个成为致命伤。因为那种靠 Industry standard 以及在 choose
library for hardware 那级 portable。Java 有点不上不下。相对 Python 和
JavaScript 太低层,相对 cplusplus 太高层,有点当年 Pascal 的感觉。
: 不是自动,手动的区别。自动和手动车,engine是一样的。
: 你们马公比喻不恰当,我老有科学素养,一下就看出来
: java和c 的程序,engine是不一样的
|
|
y*********e 发帖数: 518 | 23 Apache Common里面那个提供的是一系列的interface还有static的函数来做辅助。
真正的Closure还要提供语法上的支持。要提供一种简单的方法,能够把一个代码片段
当作参数带入函数。
比如,你给的链接里面的 Ruby 的示例代码:
def highPaid(emps)
threshold = 150
return emps.select { |e| e.salary > threshold }
end
这里的代码片段 |e| e.salary > threshold 其实会被编译成一个匿名函数。输入 e,返回
e.salary > threshold。所以输入类型是Employee,输出是Boolean。
但是Java 6在语法上就不支持,非要创建一个interface,然后new一个新的对象,把对
象当作参数带入select函数。麻烦之级。
除此之外,还要求编译器能自动鉴别数据类型 (Type Inference)。比如,我写一个匿
名函数,x => x + 1,这个 x 可以是 int,也可以是 long,还可以是 double。对于
支持ge... 阅读全帖 |
|
d*******r 发帖数: 208 | 24 没申这两个公司,recruiter从linkedin发信问我感兴趣不。why not。
twitter:没有coding,尽是些java知识题, 说些能记住的。
1. what is bytecode instrumentation.
2. what is dependency injection.
3. how to write a generic class in Java.
4. what is difference between sychronized method and syncronized statement.
5. how does static method and static class work
6. abastract class vs interface
7. what is deadlock and how to detect that.
8. how to distribute data replicate in Hadoop DataNode, what is the pro/cons
of increate/decreate replicatio... 阅读全帖 |
|
r*****d 发帖数: 1924 | 25 【 以下文字转载自 WashingtonDC 讨论区 】
发信人: Westridge (西岭), 信区: WashingtonDC
标 题: Java开发人员知识点(更新)
发信站: BBS 未名空间站 (Wed Apr 18 00:03:19 2012, 美东)
Java开发人员知识点
1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java
。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license和JCP。了
解bytecode和Java在不同系统下可以轻松移植的原理。
2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。
几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,
抽象,多态,接口,异常处理,堆空间,栈空间,垃圾回收器,static,this,
synchronized,annotations,JUnit,JDBC,JSP/servlet
Java Core APIs: java.lang,java.util,java.io,java.a... 阅读全帖 |
|
d****o 发帖数: 1055 | 26 对于大家复习design problem有帮助
互联网已经发展多年,其中不乏脱颖而出者,这些网站多数都已存在了接近10年或10
年以上,在如此长时间的发展过程中,除了业务上面临的挑战,在技术上也面临了很多
的挑战。我挑选了一些Alexa排名较前的网站(排名截止到2012年4月21 日),看看它们
在技术上是如何应对业务发展过程中的挑战的。
Google 目前Alexa排名第1。它诞生于1997年,当时是一个研究性项目,每个月
build一次索引,build出来的索引通过sharding(shard by doc)的方式分散到多台服务
器(Index Server)上,具体的网页数据同样通过sharding的方式分散到多台服务器(Doc
Server)上,当用户提交请求时,通过前端的一台服务器将请求提交给Index Server获
得打了分的倒排索引,然后从Doc Server提取具体的网页信息(例如网页标题、搜索关
键词匹配的片段信息等),最终展现给用户。
随着索引的网页增加,这个结构可通过增加Index Server以及Doc Server来存储索
引以及网页的数据,但仍然会面临其他... 阅读全帖 |
|
|
|
e***a 发帖数: 1661 | 29 来自主题: JobHunting版 - 谁解释一下 compile java source code into bytecode |
|
l********s 发帖数: 276 | 30 C#编译成binary比Java编译成Bytecode当然效率要高,不过大多数人不喜欢软软的东西
, 因为上船容易下船难。 |
|
W*******e 发帖数: 1268 | 31 先抛砖引玉总结一下个人使用Java经历,从用HotJava开始,第一个IDE用的是Symatec
Cafe,到现在的Eclipse和JDeveloper,看看知识有没有跟上现在的潮流,需要哪些改
进的地方请砸砖。对新的Java开发员如果有用的地方请给包子鼓励。
Java开发人员知识点
1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java
。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license。了
解bytecode和Java在不同系统下可以轻松移植的原理。
2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。
几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,
抽象,多态,接口,异常处理,堆空间,栈空间,垃圾回收器,static,this,
synchronized,annotations,JUnit,JDBC,JSP/servlet
Java Core APIs: java.lang,java.util,java.io,java.awt,javax... 阅读全帖 |
|
x**n 发帖数: 12542 | 32 ☆─────────────────────────────────────☆
Westridge (西岭) 于 (Wed Apr 18 00:03:19 2012, 美东) 提到:
Java开发人员知识点
1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java
。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license和JCP。了
解bytecode和Java在不同系统下可以轻松移植的原理。
2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。
几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,
抽象,多态,接口,异常处理,堆空间,栈空间,垃圾回收器,static,this,
synchronized,annotations,JUnit,JDBC,JSP/servlet
Java Core APIs: java.lang,java.util,java.io,java.awt,javax.swing,JFrame
,String,java.sql... 阅读全帖 |
|
l********l 发帖数: 9452 | 33
。net其实是ms用com+做了一个container,叫comon language runtime(clr),跟
java vm一回事(但是效率比vm高不少)。managed c只是.net的一种language,所有.
net languages(managed c, c# ,vb.net)都先compile IL(就是java的bytecode)。IL
再在clr里面run,这样就cross-platform。
其实就是ms版的java,基本就是完全抄袭。但是.net没有全盘object华,GC比java强多
了。 |
|
k**********a 发帖数: 255 | 34 【 以下文字转载自 Java 讨论区 】
发信人: kimulatakuya (木村拓哉), 信区: Java
标 题: 求助大家 如何用 Eclipse 给一个project加入image
发信站: BBS 未名空间站 (Thu Aug 27 20:13:09 2009, 美东)
问题是这样的
我想运行一个已经bytecode file 叫做 game.class 因为这个是别人给我的 所以我没
有它对应的java源文件 只有.class
它是一个有图形界面的游戏 里边有很多image和icon 我也下载下来 import到我的这个
project的folder下面 我好不容易让它运行起来 它确实也运行成功了 但是游戏画面漆
黑一片 同时console提示player已经自动的进行到什么什么程度了 就是看不到image
和Icon的resource
我尝试了很多办法 把那几个image和icon到处copy 可是还是不行 我也没法打开看源代
码 大家有时间建议么
谢谢了 |
|
s*******e 发帖数: 42 | 35 Some processors support java bytecode such as jazelle feature for ARM.
However, performance of Jazelle is worse than JVM with JIT. It didn't really
catch on. |
|
W*******e 发帖数: 1268 | 36 【 以下文字转载自 WashingtonDC 讨论区 】
发信人: Westridge (西岭), 信区: WashingtonDC
标 题: Java开发人员知识点
发信站: BBS 未名空间站 (Wed Apr 18 00:03:19 2012, 美东)
先抛砖引玉总结一下个人使用Java经历,从用HotJava开始,第一个IDE用的是Symatec
Cafe,到现在的Eclipse和JDeveloper,看看知识有没有跟上现在的潮流,需要哪些改
进的地方请砸砖。对新的Java开发员如果有用的地方请给包子鼓励。
Java开发人员知识点
1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java
。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license。了
解bytecode和Java在不同系统下可以轻松移植的原理。
2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。
几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,
抽象,多态,接口,异常处理,堆空... 阅读全帖 |
|
s***k 发帖数: 23 | 37 Java program will be compiled into Java bytecode, the code
will run on Java Virtual Machine(VM).
Java platform consists of two components: Java VM and Java
API.
The types of Java applications:
1 Java applets
2 Java applications
3 java server
4 Java servlet |
|
e***g 发帖数: 158 | 38 sure javac knows that it is dead code, and will eliminate it. (javap -c)
however, semantically, if() is a runtime thing; javac has to
treat the two situation differently when compiling.
practically this is very useful, for example,
1. final boolean FLAG=true;
2. if(FLAG)... else...;
you can change line 1, to be false, or to be non-const,
but compiler should not give different message to line 2,
(though indeed very different bytecodes are generated)
because structure and semantics of of line 2 |
|
xt 发帖数: 17532 | 39
There is no such limitation to regular java code I guess. I have
written methods way larger than 64K if compiled into bytecode.
It's not difficult, but it is not what we are looking for. |
|
xt 发帖数: 17532 | 40
The size of bytecode from a method cannot be more than 64 for JSP. |
|
g*****n 发帖数: 37 | 41 No use. Java bytecode can be easily decompiled, using DJ, mocha ... |
|
g*****g 发帖数: 34805 | 42 Java can load bytecode in runtime, and expose the interface and field if you
need it. Of course, you can also write and compile source file in runtime. |
|
e***g 发帖数: 158 | 43 well, intuitive to a procedural mind, not an OO-mind:)
first of all, the method implementation may not exist in C,
say if C is interface, or abstract.
should they provide an alternative? that this method is concrete,
please invoke its implementation regardless subclass overriding?
they may have technical difficulty of doing this, like limit of
JVM bytecode specification, some runtime semantics consideration.
or they may simply give you the typical java answer: dude, you
don't know what you want, |
|
s**a 发帖数: 4 | 44 Sorry I can't input Chinese on this machine.
We know that j2ee containers dynamically generate bytecodes. e.g. call javac
to compile jsp into servlet class, dynamically generate facade implementation
of interfaces for beans.
Where, say JOnAS (or any other container implementation), save these byte
codes? Is there any hooks inside the container code that could be used to get
these byte code and save it somewhere for analysis usage?
Thanks a lot! |
|
xt 发帖数: 17532 | 45
I don't think you can do that. |
|
g*******e 发帖数: 14 | 46 So the modifier 'final' is only used for checking at compile time.
final and non-final methods should be same in bytecode.
Am I right? |
|
g*******e 发帖数: 14 | 47
The caller does not need to distinguish final and no-final methods.
Why bother to make different signature?
Final and non-final methods are all put into v-table, so they are treated
same in run time.
There is no reason to distinguish final and non-final methods in bytecode. |
|