萌萌妈妈 发表于 2015-1-18 11:32:53

来看show一下java中的volatile的感化

到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
详细感化就未几讲了,也许就是包管可见性和避免重排序。实在很早前就晓得有这个关头字,试过良多次,总以为加了和没加效果一样。
此次终究在浏览《java并发程序理论》(特地任务告白一下,好书)的时分有了灵感,写了一段很一般的代码:
Java代码
public class NoVisibility {
private boolean ready=false;
int num;
private class ReaderThread extends Thread {
public void run() {
int count = 0;
while (!ready) 
{
count++;
}
System.out.println(num);
}
}

public static void main(String[] args) throws InterruptedException {
NoVisibility x = new NoVisibility();
x.new ReaderThread().start();
x.num = 43;
x.ready = true;
System.out.println("main Thread end");
}
}
再写一段python来一直地挪用它(由于纷歧定总能呈现),不久后就会发明不前往了,ready值的更新一向对ReaderThread线程不成见。假如ready加个volatile就不会有成绩了,能够一向运转。
Python代码
import os
i=0
while True:
os.system("java -server NoVisibility")#or os.popen
i+=1
print "run count"+str(i)
感觉:
1.java运转时加参数-server用server版的假造机出成绩概率很高,听说是server才经由大批优化。
2.while(!ready)的轮回内假如有System.out操纵时,也几近不出成绩,进步了可见性?(这个是我的推测)

从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。

精灵巫婆 发表于 2015-1-21 09:55:10

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

仓酷云 发表于 2015-1-25 10:55:27

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

若天明 发表于 2015-2-2 21:47:03

是一种将安全性(Security)列为第一优先考虑的语言

蒙在股里 发表于 2015-2-6 08:06:23

是一种语言,用以产生「小应用程序(Applet(s))

爱飞 发表于 2015-2-15 18:33:58

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

飘灵儿 发表于 2015-2-23 01:20:38

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

乐观 发表于 2015-3-7 04:44:41

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

小魔女 发表于 2015-3-11 12:56:01

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

变相怪杰 发表于 2015-3-15 03:06:13

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

老尸 发表于 2015-3-17 18:09:33

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

简单生活 发表于 2015-3-21 14:13:24

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

谁可相欹 发表于 2015-3-22 05:09:17

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

只想知道 发表于 2015-4-1 14:08:55

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

愤怒的大鸟 发表于 2015-4-6 11:34:22

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

admin 发表于 2015-4-16 15:33:03

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

萌萌妈妈 发表于 2015-5-5 03:21:15

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

再见西城 发表于 2015-5-5 16:53:52

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

柔情似水 发表于 2015-5-7 16:36:04

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

冷月葬花魂 发表于 2015-7-7 05:12:01

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页: [1] 2
查看完整版本: 来看show一下java中的volatile的感化