这个java软件公司代码是什么样子的怎么输得代码

学Java的,好像我的代码都是抄人家的
曾经一度幻想自己能啪啪啪的敲出来一个系统,现在知道不太现实。自己写出来的代码,其实都是拿人家的过来修修改改,这里大神多,请问你们都是怎么写代码的呢?
共21条回复
所有练书法的人都是从临摹前代大家的字帖开始的。
Java就是个喳
我来看大家怎么喷java的~
从hello world开始,就是抄别人的代码,后来慢慢抄别人的思想。到目前为止,还没有不抄的东西。
千万不要以为我们是写代码的,所以,真正的学问在打字上
你现在的毛病就是,思而不学则怠,你以为什么都是自己写的才是本事,那是最终结果而已,过程是你要大量的学习别人怎么写,学习业界标准的写法,当你的水平达到了正常的程序员的一般水平了,你才有资格谈写自己的代码,才有资格谈创作
大师也不是一开始就设计大师作品的,都是从画蛋开始的,明白了么?
差不多,我现在写c++,修改一个bug或者增加一个feature,都要先找一下别人之前的代码是怎么做的,然后想想怎样把自己的东西融入整个框架,然后就是正确的拷贝黏贴。
我们是代码的搬运工~
上网搜索别人的代码 和 查api , 有区别,但也都是为了了解学习不知道的地方。
java web的
除非能把整个 js
,java api,又或者使用的框架, extjs, jquery,等等有关的所有api背下来我觉得就不用去查别人的代码也不用查api了。
个人现在用extjs4, 一直在查api在搜索别人的代码, 反正extjs的api我背不下来, 估计能背下来。
这两个能力应该很重要:
1 错误定位的能力,
2 解决错误的能力。
不要小看使用代码,能把别人的代码用好本身就是一个很NB的本领。屠龙刀给了屠夫,就只能砍砍骨头,砍砍肉,说不定还被抱怨不好用,要是给了武林高手,那就能称霸武林了,但至于屠龙刀是怎么打造的,有那么重要吗?
我们不写代码,我们是优秀代码的搬运工。
本帖有21个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。当你从c&c++转到一门具有垃圾回收功能的语言时,程序员的工作就会变得更加容易,因为你用完对象,他们会被自动回收,但是,java程序员真的不需要考虑内存泄露吗? 其实不然
1.举个例子-看你能否找出内存泄漏
import java.util.A
public class Stack {
private Object[]
private int size = 0;
private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack() {
elements = new Object[DEFAULT_INITIAL_CAPACITY];
public void push(Object e) {
ensureCapacity();
elements[size++] =
public Object pop() {
if (size == 0)
throw new EmptyStackException();
return elements[--size];
private void ensureCapacity() {
if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);
1.1原因分析
上述程序并没有明显的错误,但是这段程序有一个内存泄漏,随着GC活动的增加,或者内存占用的不断增加,程序性能的降低就会表现出来,严重时可导致内存泄漏,但是这种失败情况相对较少。
代码的主要问题在pop函数,下面通过这张图示展现
假设这个栈一直增长,增长后如下图所示
当进行大量的pop操作时,由于引用未进行置空,gc是不会释放的,如下图所示
从上图中看以看出,如果栈先增长,在收缩,那么从栈中弹出的对象将不会被当作垃圾回收,即使程序不再使用栈中的这些队象,他们也不会回收,因为栈中仍然保存这对象的引用,俗称过期引用,这个内存泄露很隐蔽。
1.2解决方法
public Object pop() {
if (size == 0)
throw new EmptyStackException();
Object result = elements[--size];
elements[size] =
一旦引用过期,清空这些引用,将引用置空。
2.缓存泄漏
内存泄漏的另一个常见来源是缓存,一旦你把对象引用放入到缓存中,他就很容易遗忘,对于这个问题,可以使用WeakHashMap代表缓存,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值
2.1代码示例
* Created by liuroy on .
import java.util.HashM
import java.util.M
import java.util.WeakHashM
import java.util.concurrent.TimeU
public class Test {
static Map wMap = new WeakHashMap();
static Map map = new HashMap();
public static void init(){
String ref1= new String("obejct1");
String ref2 = new String("obejct2");
String ref3 = new String ("obejct3");
String ref4 = new String ("obejct4");
wMap.put(ref1, "chaheObject1");
wMap.put(ref2, "chaheObject2");
map.put(ref3, "chaheObject3");
map.put(ref4, "chaheObject4");
System.out.println("String引用ref1,ref2,ref3,ref4 消失");
public static void testWeakHashMap(){
System.out.println("WeakHashMap GC之前");
for (Object o : wMap.entrySet()) {
System.out.println(o);
System.gc();
TimeUnit.SECONDS.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("WeakHashMap GC之后");
for (Object o : wMap.entrySet()) {
System.out.println(o);
public static void testHashMap(){
System.out.println("HashMap GC之前");
for (Object o : map.entrySet()) {
System.out.println(o);
System.gc();
TimeUnit.SECONDS.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("HashMap GC之后");
for (Object o : map.entrySet()) {
System.out.println(o);
public static void main(String[] args) {
testWeakHashMap();
testHashMap();
String引用ref1,ref2,ref3,ref4 消失
WeakHashMap GC之前
obejct2=chaheObject2
obejct1=chaheObject1
WeakHashMap GC之后
HashMap GC之前
obejct4=chaheObject4
obejct3=chaheObject3
Disconnected from the target VM, address: '127.0.0.1:51628', transport: 'socket'
HashMap GC之后
obejct4=chaheObject4
obejct3=chaheObject3
上面代码和图示主演演示WeakHashMap如何自动释放缓存对象,当init函数执行完成后,局部变量字符串引用weakd1,weakd2,d1,d2都会消失,此时只有静态map中保存中对字符串对象的引用,可以看到,调用gc之后,hashmap的没有被回收,而WeakHashmap里面的缓存被回收了。
监听器和回调
内存泄漏第三个常见来源是监听器和其他回调,如果客户端在你实现的API中注册回调,却没有显示的取消,那么就会积聚。需要确保回调立即被当作垃圾回收的最佳方法是只保存他的若引用,例如将他们保存成为WeakHashMap中的键。
阅读(...) 评论()如何运行java程序代码,手机如何运行java程序-记住吧
如何运行java程序代码
jazdbmin1639整理
如何调试代码
手机如何运行java程序
怎么用记事本编译运行java程序代码?
在命令提示符下(运行“CMD”),首先确定设置好环境变量,输入JAVAC看看命令是否可用,如果JAVAC命令不可用,右击我的电脑->属性->高级->环境变量,在系统变量栏,找到Path编辑在它最后加上分号“;”然后把JDK安装路径下的BIN文件夹路径粘贴过去,确定确定完成环境变量设置。用记事本编写好*.JAVA程序,调出命令提示符,用CD命令转到编写程序好的*.JAVA程序目录下,用javac *.java命令编译,没有出现错误编译好后,在当前目录下会生成class文件,用java *命令运行(文件名不要加.class)。
如何在CMD编译和运行JAVA代码?
首先cd到你java文件存放的目录,比如你的java文件的名称为HelloWorld.java,在cmd中输入javac HelloWorld.java 敲击回车,这个命令会将你的java文件编译成class文件,然后在cmd框中输入java HelloWorld敲击回车就能运行你的java文件输出结果追问:其实主要是不知道如何去调用已经写好的代码,环境变量等已经设置好了。追答:调用就按照我上面说的做就可以了,我说的就是运行你java文件的步骤追问:其实就是不晓得如何CD到JAVA文件存放的目录啊。追答:比如你的java文件放在D:/baidu/a文件夹下在cmd框中输入的命令如下C:\Documents and Settings\Administrator>d:D:\&cd baidu/aD:\baidu\a> 这样就跳转到你存放java的文件了然后输入我上面写的javac HelloWorld.java这些命令
Java的详细运行步骤
Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。 下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。代码如下://MainApp.javapublic class MainApp {public static void main(String[] args) {Animal animal = new Animal("Puppy");animal.printName();}}//Animal.javapublic class Animal {public Spublic Animal(String name) {this.name =}public void printName() {System.out.println("Animal ["+name+"]");}}第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。编译后的字节码文件格式主要分为两部分:常量池和方法字节码。常量池记录的是代码出现过的所有token(类名,成员变量名等等)以及符号引用(方法引用,成员变量引用等等);方法字节码放的是类中各个方法的字节码。下面是MainApp.class通过反汇编的结果,我们可以清楚看到.class文件的结构:第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。下面是程序运行的详细步骤:在编译好java程序得到MainApp.class文件后,在命令行上敲java AppMain。系统就会启动一个jvm进程,jvm进程从classpath路径中找到一个名为AppMain.class的二进制文件,将MainApp的类信息加载到运行时数据区的方法区内,这个过程叫做MainApp类的加载。然后JVM找到AppMain的主函数入口,开始执行main函数。main函数的第一条命令是Animalanimal = new Animal("Puppy");就是让JVM创建一个Animal对象,但是这时候方法区中没有Animal类的信息,所以JVM马上加载Animal类,把Animal类的类型信息放到方法区中。加载完Animal类之后,Java虚拟机做的第一件事情就是在堆区中为一个新的Animal实例分配内存, 然后调用构造函数初始化Animal实例,这个Animal实例持有着指向方法区的Animal类的类型信息(其中包含有方法表,java动态绑定的底层实现)的引用。当使用animal.printName()的时候,JVM根据animal引用找到Animal对象,然后根据Animal对象持有的引用定位到方法区中Animal类的类型信息的方法表,获得printName()函数的字节码的地址。开始运行printName()函数。特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。
如何用cmd运行java程序
搜索输入 cmd――》直接按enter键编写的java程序运行时必须要进入所保存的文件的盘中,如果文件在d盘中保存则要进入到d盘进入d盘,则要在命令提示符中输入如下命令:“d:”或者直接要进入输在文件的文件夹中则要输入以下命令:“cd d: \workplace\”(workplace为所在文件的文件夹)如果要编译自己编好的程序输入以下命令:“javac文件的名称.java ”如果要运行编好的程序输入以下命令:“java 文件名称”具体在这http://blog.csdn.net/u/article/details/
一个简单的java程序。可运行的
12345publicclassTest(){publicstaticvoidmain(Stringargs[]){System.out.println("HelloWorld");}}
小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
如何调试代码 推荐文章:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
推荐不满意?点这里&&>>&&JAVA 编程题。求大神解答,搞了好久了,不会搞。求源代码:允许用户在键盘输入若干个数字(每输入一个数字需要按回车确认),程序将计算这些数的和和平均值。采用异常抛出方法实现当用户输入的数字大于100或小于0时,程序立刻终止运行,并提示这一数据非法。
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;I have to print the whole sourcecode of a java-project.
The final version should look like: Eclipse: File -> Print.
But with this function you can only print one file at once.
Is there a way to print (or create a pdf/rtf of) the whole project (all *.java, *.xml, ... files) with one command?
Im using eclipse galileo on windows xp sp3
EDIT: For each class/file the page should (more or less) look like this:
C:\..\..\..\LibraryExtractor.java
1 package utils.
3 import java.io.F
15 public class LibraryExtractor {
26 public static void extranctLibrary(String library, File targetFile) throws
IOException, URISyntaxException {
27 targetFile.getParentFile().mkdirs();
28 if (!targetFile.exists())
29 targetFile.createNewFile();
31 ClassLoader classLoader = LibraryExtractor.class.getClassLoader();
32 InputStream in = classLoader.getResourceAsStream(library);
33 OutputStream out = new FileOutputStream(targetFile);
35 byte[] buf = new byte[1024];
38 while ((len = in.read(buf)) & 0)
39 out.write(buf, 0, len);
41 in.close();
42 out.close();
(with Cygwin)
Eclipse-Plugin (only
works with Europa)
解决方案 If you don't mind installing , or running on Linux, the following command will do what you want:
enscript -r -2 --file-align=2 --highlight --line-numbers -o - `find . -name '*.java'` | ps2pdf - files.pdf
enscript is a program for converting text files to a varie PostScript is the default, but you can also produce HTML, RTF, and a few others. The -r option says to print in landscape, -2 is two columns per page (save trees), --file-align=2 says that each new file should start on its own physical page, --highlight turns on language-specific syntax highlighting (it will try to figure out the language, or you can specify "java"), --line-numbers should be obvious, and -o - sends the output to standard-out (where it's piped to ps2pdf).
find generat here I'm telling it to find all Java files under in the current directory. The output is passed as arguments to enscript; for "50-100 files" you should be OK, but you might need to read about xargs. You could get rid of the -name argument to generate a list of all files, or add multiple -name arguments to add more fi I wouldn't go with the "all files" approach, because then you'll get source-control files.
ps2pdf takes the PostScript output from enscript and converts it to PDF, which you can print.
本文地址: &
我必须打印一个java项目的整个源代码。 最终版本应如下所示: Eclipse:File
- > Print 。 但是使用此功能,您只能一次打印一个文件。
有没有办法打印整个项目(或创建pdf / rtf) (所有* .java,* .xml,...文件)与一个命令?
我使用eclipse galileo在windows xp sp3
编辑:对于每个类/文件,页面应该(或多或少)看起来像这样:
C:\..\..\..\LibraryExtractor.java
3 import java.io.F
15 public class LibraryExtractor {
26 public static void extranctLibrary(String library,File targetFile)throws
IOException,URISyntaxException { 27 targetFile.getParentFile()。mkdirs( );
28 if(!targetFile.exists()) 29 targetFile.createNewFile();
31 ClassLoader classLoader = LibraryExtractor.class.getClassLoader();
32 InputStream in = classLoader.getResourceAsStream(library);
33 OutputStream out = new FileOutputStream(targetFile);
35 byte [] buf = new byte [1024];
38 while((len = in.read(buf))& 0) 39 out.write(buf,0,len);
41 in.close();
42 out.close();
解决方案:
(与Cygwin)
Eclipse -Plugin(只有适用于欧罗巴)
解决方案 您不介意安装,或在Linux上运行,以下命令将执行您想要的:
enscript -r -2 --file-align = 2 --highlight --line-numbers -o
- `find。 -name'* .java'` | ps2pdf
enscript 是一个将文本文件转换为各种输出格式; PostScript是默认的,但您也可以生成HTML,RTF等。
-r 选项表示以横向打印, -2 是每页两列(保存树),
file-align = 2 表示每个新文件应该在自己的物理页面上开始,
- 突出显示打开语言特定的语法高亮(它会尝试找出语言,或者你可以指定“java”),
- 行号应该是明显的,而 -o
将输出发送到标准输出(在管道中输入到 ps2pdf )。
em> find 生成文件列表;这里我告诉它找到当前目录下的所有Java文件。输出作为参数传递给 enscript ;对于“50-100文件”,您应该可以,但是您可能需要阅读关于 xargs 的信息。您可以摆脱 -name 参数来生成所有文件的列表,或者添加多个 -name 参数添加更多文件类型到列表中;我不会用“所有文件”的方法,因为那将得到源代码控制文件。
ps2pdf 采用PostScript输出从 enscript ,并将其转换为PDF,您可以打印。
本文地址: &
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注
与百万开发者在一起
(window.slotbydup = window.slotbydup || []).push({
id: '5828425',
container: s,
size: '300,250',
display: 'inlay-fix'

我要回帖

更多关于 java在哪个软件敲代码 的文章

 

随机推荐