包含volicejava的词条
今天给各位分享volicejava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java有哪些相关书籍?
- 2、用ICE实现客户端调用服务器上的方法(java),客户端上调用部分显示方法未定义,这段调用部分应该怎么写?
- 3、JAVA初学问题
- 4、java多线程,求大神~~
- 5、用ice实现java和c++的通信,代理类型返回为空是什么原因
- 6、基本的ice(java开发)的例子.编译能通过,执行到Ice.Util时出现classnotfound异常.请问如何解决.谢谢!
Java有哪些相关书籍?
Concurrency Practice in Java
又一部 约书亚·布洛克 大神的经典之作,当然本书的另一位主作者为 Doug Lea(影响两次Java历史上的大变革的大神)。这本书几乎就是Java并发和多线程编程方面的权威,同时也是核心Java开发人员必读的一本书。本书的强大主要表现在
Head First Java
Head First Java是所有编程或者Java初学者最适合的书籍,我很喜欢轻松和寓教于乐的Head First风格,这应该是最有意思的关于Java的书
Head First 设计模式
Head First设计模式又是一部Head First系列的书籍。作者为Kathy Sierra及其团队。当我在2006年开始读这本书的时候,我对设计模式并不是很了解。设计模式解决什么问题,怎么解决问题,如何使用设计模式,设计模式有什么好处,这些问题我几乎都无法回答出来。
用ICE实现客户端调用服务器上的方法(java),客户端上调用部分显示方法未定义,这段调用部分应该怎么写?
ICE 要在客户端服务端要有同样生成的bean代码,
在服务端启动一个adapter
然后把你生成的代码中的***I 点加到adapter中.
客户端通过代理去调用.. 一两句说不明白, 可以参考一下ICE demo中的 demoj.hello
JAVA初学问题
先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力。
只不过思维方式不一样而已。
面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现.
面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目.
在面向对象的思想中,万物皆对象,我是,你是,他也是。
而"类",就是对象的抽象或者说是概括。比如,我你他都可以概括为人类。
总的来说,类是抽象的虚的,而对象是一个个活生生的具体的事物。
人是一个类,我你他就是对象。
一般的面向对象程序设计方法都是先设计一个类,然后由这个类产生一个对象。
之后是对这个对象进行相关操作。
要说明一点:操作是对对象进行的,没有对象就无所谓操作。
下面说说如何设计一个类,
类是有一些属性和功能封装起来的。
在面向过程的思想里,一个程序一般都是由一个个函数组成的,这些函数之间相互调用,
就形成了一个完整的程序,解决了一个问题。它的基本结构是:
函数一()
{
……;
}
函数二()
{
……;
}
……
主函数()
{
……;
}
但是在面向对象的思想中,是把这些都封装起来,形成一个类。
class 类名
{
函数一()
{
……;
}
函数二()
{
……;
}
……
}
然后由这个类产生一个对象,比如:我们把一个类的类名起为 student
那么产生对象的方法就是: student s1;
这里s1是一个对象,产生了这个对象以后,才可以进行相关操作。
操作方法如: s1.函数一();
等等。具体的细节在此就不说了,此文只说思想。
说得再明白一点就是,把具体的实现过程放在类里面,之后产生一个对象,有对象调用相关操作。
犹如把面向过程里的函数都封装进了类里,然后再由对象来操作。
一个类主要就是封装,一般把它当成一个模块,在需要的时候可以让其他类调用。
类是一个抽象,一个概括,把一些有共同特征的东西抽象化,提出它们的公共部分,封装在一起。
关于封装,上文已经说过,就是把一些属性和功能装在一个容器里面。
下面我用一个游戏来解说一下:
假设我们要做一个小游戏,类似于网游里面的打怪,为简单起见,认为怪不打人,只让人打,
他的血不断减少,直到死亡。
把所有怪物的共同特征抽象出来,于是我们得到一个类:怪物
class 怪物
{
char 怪物名;
int 血;
怪物(怪物名n,血n) /*构造函数*/
{
怪物名=怪物名n;
血=血n;
}
被打函数()
{
血减少;
}
判断函数()
{
if (血==0)
printf("你胜利了!");
}
玩游戏()
{
while (血 0)
{
被打函数();
判断函数();
}
}
}
这样,就定义了一个怪物类,他有属性:怪物名、血,有功能:构造、被打、判断
根据这个,就可以产生对象了。
一个类可以产生任意多的对象,这些对象根据构造函数的不同来区别。
我们先继续来写我们的程序
main主函数
void main()
{
/******产生对象******/
怪物 怪物1("狼",5000);
怪物 怪物2("虎",8000);
怪物 怪物3("蛇",3000);
/**有了几个对象以后才能开始我们的游戏**/
怪物1.玩游戏();
怪物2.玩游戏();
怪物3.玩游戏();
}
再这个主函数中,我们建立了三个对象,它们共用一个类。
可以看到,类相当于一个组件,一个模块,我们在需要的时候只要建立它的对象,就能实现他所封装的功
能。
这就是面向对象的优点,可以重用,不必每一次用到时都重写。
说了这么多,自己感觉还是没说明白,真有点只可意味不可言传的感觉。
其实要是书看的多了,真正认真地写上几个东西,就能够理解了,无形之中就会有感觉的。
java多线程,求大神~~
volitile是不能保证线程对共享资源获取是同步的,volitile只能保证被修改的数据不会存在于cpu的缓存中,而是直接刷新回内存,这样可以保证所有对资源共享的线程都是从内存中直接读取相同的数据,而就不存在一部分线程读内存中的数据而另外一部分读缓存中的数据,造成数据的可视性不一致了。使用volitile和非volitile修饰的变量同样是不存在粒子性的,其自加和自减操作在jvm的实现中都是分多步进行的,1、gefiled,2、将域值放入栈帧的局部变量区,3、将局部变量区的数据取得后放入操作数栈进行运算4、计算完成返回结果后再putfield。这样在多线程中对共享资源的同步使用volitile同样是非线程安全的。对共享资源同步的保险方法是使用synchronized方法,每个对象只有一个对象锁,jvm负责监控对象锁,当对象锁被某个线程取得时,jvm对对象锁的计数变为1,此时jvm将不会允许其它线程获得此对象的对象锁。将共享资源的运算以及获取放入synchronized方法中,同时将共享资源修饰为volitile,这样就可以做到双保险了。Synchronized修饰的方法是隐式的锁技术,可以使用Lock进行细粒度的锁控制,在Lock对象未调用unlock方法之前,非持有对象锁的进程均无法进入Lock.lock()…………Lock.unlock()这块区域。
用ice实现java和c++的通信,代理类型返回为空是什么原因
有区别, ICE 在基本上的相同的,但很多都是基于slice上的。 换句话来讲只能是在slice上通用。
实际ICE是根据slice生成不同的原生语言(java,c++,php,c#)等,所以在语言上是等同于使用原生语言开发。 在数据上几乎是一样的,不过在显示中文的时需要注意字符集问题。
返回代理类型为空一般都是,ICE的配置属性是于相符, 代理是不是找不到。
基本的ice(java开发)的例子.编译能通过,执行到Ice.Util时出现classnotfound异常.请问如何解决.谢谢!
public class FilenameDemo
{
public static void main(String[] args) {
Filename myHomePage = new Filename("/home/men/index.html", '/', '.');
System.out.println("Extension="+myHomePage.extension());
System.out.println("Filename="+myHomePage.filename());
System.out.println("Path="+myHomePage.path());
}
}
class Filename
{
private String fullPath;
private char pathSeparator, extensionSeparator;
public Filename(String str, char sep, char ext){
fullPath=str;
pathSeparator=sep;
extensionSeparator=ext;
}
public String extension() {
int dot =fullPath.lastIndexOf(extensionSeparator);
return fullPath.substring(dot+1);
}
public String filename() {
int dot=fullPath.lastIndexOf(extensionSeparator);
int sep=fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(sep+1,dot);
}
public String path() {
int sep=fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(0,sep+1);
}
}
这是修改之后的代码,可以用。
如果你是在DOS命令下运行这段代码,你应该把Filename类写在另一个文件里。不明白的话,hi我吧。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
volicejava的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、volicejava的信息别忘了在本站进行查找喔。