ja

阅读 / 问答 / 标签

犯罪心理jason与dave什么关系?

应该不是,dave是bau的创始人之一,是元老。。

我的手机有JAVA,是pulid,怎么 下载java游戏啊?

换一款新手机吧 !! 一定要买带JAVA程序的!!!

如何用jackson解析含有转义字符的字符串,为标准格式的json字符串

使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。//当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号public static String stringToJson(String s) {StringBuffer sb = new StringBuffer ();for (int i=0; i<s.length(); i++) {char c = s.charAt(i);switch (c) {case """:sb.append("\"");break;// case "\": //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码// sb.append("\\");// break;case "/":sb.append("\/");break;case "": //退格sb.append("\b");break;case "f": //走纸换页sb.append("\f");break;case " ":sb.append("\n"); //换行break;case " ": //回车sb.append("\r");break;case " ": //横向跳格sb.append("\t");break;default:sb.append(c);}}return sb.toString();}//注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串//处理文本中的单引号 和 斜杠public static String StringDanYinToJSON(String ors) {ors = ors == null ? "" : ors;StringBuffer buffer = new StringBuffer(ors);int i = 0;while (i < buffer.length()) {if (buffer.charAt(i) == """ || buffer.charAt(i) == "\") {buffer.insert(i, "\");i += 2;} else {i++;}}return buffer.toString();}

如何用jackson解析含有转义字符的字符串,为标准格式的json字符串

importorg.codehaus.jackson.map.JsonSerializer;

如何用jackson解析含有转义字符的字符串,为标准格式的json字符串

使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。  使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。    //当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号  public static String stringToJson(String s) {  StringBuffer sb = new StringBuffer ();  for (int i=0; i<s.length(); i++) {    char c = s.charAt(i);  switch (c) {  case """:  sb.append("\"");  break;  // case "\": //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码  // sb.append("\\");  // break;  case "/":  sb.append("\/");  break;  case "": //退格  sb.append("\b");  break;  case "f": //走纸换页  sb.append("\f");  break;  case " ":  sb.append("\n"); //换行  break;  case " ": //回车  sb.append("\r");  break;  case " ": //横向跳格  sb.append("\t");  break;  default:  sb.append(c);  }}  return sb.toString();  }    //注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串  //处理文本中的单引号 和 斜杠  public static String StringDanYinToJSON(String ors) {  ors = ors == null ? "" : ors;  StringBuffer buffer = new StringBuffer(ors);  int i = 0;  while (i < buffer.length()) {  if (buffer.charAt(i) == """ || buffer.charAt(i) == "\") {  buffer.insert(i, "\");  i += 2;  } else {  i++;  }  }  return buffer.toString();  }

Java声明Student类的对象stu的语句为( )?

Student stu=new Student();

求Alguien _Jaime Kohen的MP3下载

Alguien _Jaime Kohen MP3下载链接,已发送到消息。

X JAPAN的《Rusty Nail》 歌词

歌曲名:Rusty Nail歌手:X JAPAN专辑:DAHLIARusty Nail作词:YOSHIKI 作曲:YOSHIKI记忆のかけらに描いた蔷薇を见つめて迹切れた 想い出重ねる变わらない梦にOh- Rusty Nailどれだけ泪を流せば贵方を忘れられるだろうJust tell me my life何处まで步いてみても泪で明日が见えない序章に终わった周末の伤忘れて流れる时代に抱かれても胸に突き刺さるOh- Rusty Nailどれだけ泪を流せば贵方を忘れられるだろう美しく色褪せて眠る蔷薇を贵方の心にさかせてI wanna dieI wanna liveI wanna die to set me freeDay and nightNight and dayI wanna live to set me freeI can dieI can liveI can die to set me freeDay and nightNight and dayI wanna live to set me free...素颜のままで生きて行ければきっと瞳に映る夜は辉く梦だけ残して朝を迎える孤独を忘れて赤い手首を抱きしめて泣いた夜を终わらせて记忆の扉を记したままで 震えて迹切れた 想いを重ねる靑い脣にOh- Rusty Nailどれだけ泪を流せば贵方を忘れられるだろうJust tell me my life何处まで步いてみても泪で明日が见えない苦しくて心を饰った... 今もあなたを忘れられなくて...http://music.baidu.com/song/18130180

java问题:有个类Student Student stu=null 与Student stu= new Student()有和区别

前面的是赋值。后面的是new一个新的类。

Alguien Jaime Kohen唱的 谁有歌词,最好有翻译

歌词:Alguien que me ame de regresoAlguien que me de la mano sin penaAlguien que me coma a besosy baile conmigo bajo las estrellasAlguien que me abrace Que me dedique tiempoAlguien que pueda ver mas alla de mi cuerpoAlguien, alguien que me ame Alguien, alguien que me acepteAlguien, alguien que me ameAlguien, alguien que me tome como soyCOROPor que Yo me amo como soyY Siendo lo que soyYo no soy lo que tu esperasYo me amo como soyY creo en lo que soySoy lo que hay en mi interiorAlguien que reciba mi darAlguien que sepa ser incondicionalAlguien que disfrute de mi escencia Alguien que me abracecuando lo necesitoAlguien que su filosofía Sea la alegríaAlguien, alguien que me ame Alguien, alguien que me acepteAlguien, alguien que me ameAlguien, alguien que me tome como soyCOROPor que Yo me amo como soyY Siendo lo que soyYo no soy lo que tu esperasYo me amo como soyY creo en lo que soySoy lo que hay en mi interiorRapp:Antes de amar necesitas respetartey yo me quiero así ahora tu pon de tu parteestoy buscando la persona idealque me quiera como yo me quieroen bien y en mal igualamor incondicional que me sepa respetary que quiera escuchar cuando yo quiera recitarun poema dedicado una carta de amorque siempre este de mi lado y me haga sentir mejornecesito alguien que me quiera como yo nacíque quiera compartir lo que pienso y me haga reíryo soy así y necesito que acepte que tenga en menteque a mi no me importa la gente soy así...COROalguien alguien que me acepte como soyporque de eso se trata el verdadero amorestoy buscando la persona que me quiera a mique me quiera conocer y me tome asíque me haga feliz, que me haga sentirque el amor es la mejor razón para vivirpues sin eso no podríamos existiry todos merecemos recibir 还没发现哪位国人将它翻译成中文 T_T

java web跟web有什么关系

人们平常说的Java一般指JavaSE,也就是Java Standard Edition,Java的标准版,一般用来开发桌面应用程序,但是在开发桌面应用程序上相对VB,Delphi,VC++并没有什么优势。而JavaWeb则到了JavaEE领域了,也就是Java Enterprise Edition,Java的企业版,看那个web就应该想到是与Internet有关的,其实开发JavaWeb应用程序,初级的一般是用JSP(Java Server Pages)+servlet+Javabean来开发的,对大型的网站一般是使用框架来开发的,例如struts,hibernate,spring,例如校内,你在登陆的时候会在地址栏看见Login.do,登陆以后会看见Home.do这样的请求,典型的struts框架结构。Java还有一个版本是JavaME,Java Micro Edition,Java的微型版,诺基亚手机上运行的Java程序就是指用这个版本开发的程序。

JAVA是什么?收费吗?

java是个软件平台,是不收费的

java有三大体系,se ee me,是不是学java的都要从se 开始学起

对 必须先学seee是指面向企业的java开发 必须有se基础才能学me是手机的java程序开发 没啥用 对于找工作 自己学着玩还行 也得有se基础都可以用myeclipse开发 你可以下载myeclipse9.0功能很强大贴心小提示:se里重点要掌握: 容器类 多线程的同步(并发) io流要向进入java行业除了java本身 数据结构 操作系统 网页设计等课程也需要你来慢慢掌握

android开发和javaEE开发的区别?

安卓开发主要是指开发安卓AppJAVAEE是指java enterprise edition,java企业版,多用于企业级开发,包括web开发等等很多组建

javaEE是什么

Java EE是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。此次J2EE改名为Java EE,实际也反映出业界这种共同心声。Java EE的核心是EJB3.0, 其提供了更兼便捷的企业级的应用框架。J2EE容易让初学者误解是独立于一套Java的技术方案。从更深层次来看,Java诞生十年,多年前的业务组件还可以使用,软件应用不再由于语言的更迭革命带来毁灭的打击了。

JAVA有哪些版本

java SEjava MEjava EE

谁有欧阳靖的【fuck jay-z】的歌词和翻译啊?

这个。。。。。还真难

关于java EE SDK和JDK的区别

开始学java 下的jdk 全称其实 是 java se sdk 简称jdk 要学习j2ee 必须先装java EE SDK 要不然根本就不能创建servlet 你的情况.应该早就下载了java EE SDK了myEclipse netbeans里都自己都这java EE SDK

java和java EE有什么区别

java EE属于Java的一部分;Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0应用程序。Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。

什么是JavaEE

JavaEE是指JavaEnterpriseEdition,Java企业版,多用于企业级开发,包括web开发等等。也叫J2EE。JavaSE通常是指JavaStandardEdition,Java标准版,就是一般Java程序的开发就可以(如桌面程序),可以看作是JavaEE的子集。JavaSE(JavaPlatform,StandardEdition)。JavaSE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE包含了支持JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。JavaEE(JavaPlatform,EnterpriseEdition)。这个版本以前称为J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented,SOA)和Web2.0应用程序。

像James Blunt - Goodbye My Lover 一样的歌。。

summer days in bloom-Maximiliancloser-Travislittle house-Amanda Seyfried(电影《分手信》插曲)into the dark-James Blunt

有谁可以翻译一下James Blunt的和中文歌词啊??谢谢

Goodbye My Lover我是否让你失望让你悲伤,我是否该背负罪恶感,接受审判因为我们开始时我就看到了结局是的,我看到了你的盲目,我知道我是赢家因此我坚持我自己是永恒的真理把你的灵魂丢进黑夜也许会有结束,但永不会停止有你的关怀,我会为你守侯你抚慰我的心灵我的灵魂你改变我的生活我的追逐爱是盲目的,我知道,当我的心灵也因为你而盲目.我吻过你的唇,拥你在怀中一起做梦,一起安睡太了解你,熟悉你的味道我已醉心于你再见我的爱再见我的朋友你是唯一你是我今生的唯一我爱做梦,但总有醒来的时候你摧毁不了我的精神--你带走我的梦当你再次上路时,请记住我记住我们一起的时光我难忘你的哭泣你的笑颜难忘你安静的睡脸我本应是你孩子的父亲,你一生的伴侣我们也相互了解对方的恐惧我们也消除了以往对彼此的怀疑我爱你,我发誓我的生活不能没有你再见我的爱再见我的朋友你是唯一你是我今生的唯一我仍然将你的手紧握我手中即使在我熟睡的时候我将及时承上我的灵魂,当我拜倒在你的石榴裙下再见我的爱再见我的朋友你是唯一你是我今生的唯一我的心已被你掏空,宝贝我的心已完全,完全地被你掏空Simona 希姆娜 You"re getting older 青春不再眷顾你 Your journey"s been Etched on your skin 往昔印刻在你的容颜 Simona 希姆娜 Wish I had known that 我真希望我能明白 We seemed so strong 曾经存在于我们之间的默契 We"ve been there and gone 我们匆匆而来,又转身离去...... I will call you up everyday Saturday night 我会在每周六约你 And we both stayed out "til the morning light 心手相连,直到天明 And we sang, "Here we go again" 我们一起吟唱着:“Here we go again” And though time goes by 纵使青春不再 I will always be In a club with you 我也会一直在那个酒吧陪着你 In 1973 在那个令人难忘的1973年 Singing "Here we go again" 吟唱着:“Here we go again” Simona 希姆娜 Wish I was sober 我希望我能保持清醒 So I could see clearly now 才能看清现实的一切 The rain has gone 暴风雨已经过去 Simona 希姆娜 I guess it"s over 是否一切已经结束了 My memory plays our tune The same old song 那首老歌还一直在我记忆中萦绕 I will call you up everyday Saturday night 我会在每周六约你 And we both stayed out "til the morning light 心手相连,直到天明 And we sang, "Here we go again" 我们一起吟唱着:“Here we go again” And though time goes by 纵使青春不再 I will always be In a club with you 我也会一直在那个酒吧陪着你 In 1973 在那个令人难忘的1973年 Singing "Here we go again" 吟唱着:“Here we go again” I will call you up everyday Saturday night 我会在每周六约你 And we both stayed out "til the morning light 心手相连,直到天明 And we sang, "Here we go again" 我们一起吟唱着:“Here we go again”a And though time goes by 纵使青春不再 I will always be In a club with you 我也会一直在那个酒吧陪着你 In 1973 在那个令人难忘的1973年 Singing "Here we go again" 吟唱着:“Here we go again” I will call you up everyday Saturday night 我会在每周六约你 And we both stayed out "til the morning light 心手相连,直到天明 And we sang, "Here we go again" 我们一起吟唱着:“Here we go again” And though time goes by 纵使青春不再 I will always be In a club with you 我也会一直在那个酒吧陪着你 In 1973 在那个令人难忘的1973年 Singing "Here we go again" 吟唱着:“Here we go again” And though time goes by 纵使青春不再 I will always be In a club with you 我也会一直在那个酒吧陪着你 In 1973 在那个令人难忘的1973年......

求james blunt 的的中文歌词

我是否让你失望让你悲伤, 我是否该背负罪恶感,接受审判 因为我们开始时我就看到了结局 是的,我看到了你的盲目,我知道我是赢家 因此我坚持我自己是永恒的真理 把你的灵魂丢进黑夜 也许会有结束,但永不会停止 有你的关怀,我会为你守侯 你抚慰我的心灵我的灵魂 你改变我的生活我的追逐 爱是盲目的,我知道, 当我的心灵也因为你而盲目. 我吻过你的唇,拥你在怀中 一起做梦,一起安睡 太了解你,熟悉你的味道 我已醉心于你 再见我的爱 再见我的朋友 你是唯一 你是我今生的唯一 我爱做梦,但总有醒来的时候 你摧毁不了我的精神--你带走我的梦 当你再次上路时,请记住我 记住我们一起的时光 我难忘你的哭泣你的笑颜 难忘你安静的睡脸 我本应是你孩子的父亲,你一生的伴侣 我们也相互了解对方的恐惧 我们也消除了以往对彼此的怀疑 我爱你,我发誓 我的生活不能没有你 再见我的爱 再见我的朋友 你是唯一 你是我今生的唯一 我仍然将你的手紧握我手中 即使在我熟睡的时候 我将及时承上我的灵魂, 当我拜倒在你的石榴裙下 再见我的爱 再见我的朋友 你是唯一 你是我今生的唯一 我的心已被你掏空,宝贝 我的心已完全,完全地被你掏空

歌词翻译(英译汉)歌手:James blunt《Goodbye my lover》

我是否让你失望和沮丧 我是否该感到罪恶或是重新作出决定 因为在我们开始前我就看到了结束的模样 是的 你失去了光明 我赢得了胜利 所以我带走了自己永恒的权利 把你的灵魂沉入黑夜 所有的都将结束 但似乎又不确定 如果你在意 我还会回头 你触摸我的心脏和灵魂 你改变我的生活和目标 随后我知道了爱的盲目 我的心被你遮住 抱着你的头吻你 分享你的美梦和温床,我了解你和你的气息,无法离去

james blunt首goodbye my lover点解?

JB接受访问 时被问及这首歌的用意: 问:You also call Goodbye My Lover your most personal track. What were the events that led to you writing the song? JB:Well the girl I was dating and I split up. I guess I wrote the song to say I"m pretty sad. I"m much better now though. If I find it difficult to explain my songs it"s because they reflect exactly the voices in my head particularly with that track. 有外国网友 声称JB这个前度女友为他怀了孕,后来她死了(未知什么原因),JB便写了这歌。 歌词内容:这对恋人分开了。对方是受到伤害。 他利用对方因爱他而赋予他的最大而永恒的权利,伤害了对方(常见的恋人悲剧),让对方的灵魂堕进黑暗中(这个暗喻重则引伸为死亡,轻则为残缺的心灵)。更恐怖的是,在二人一起之前,他已经预计到这个悲剧结局。 他仍然深爱对方。守候着她。因为他已经上了她的瘾,如果她会回来,他愿意跟她一生一世,做她BB的爸爸…梦中的他会紧握她的手…有一天他背负住他的灵魂跪在她脚旁…祈求她的寛恕? 她是他的唯一真爱。可能她是真的死了,也许对方没可能再回到他身边。自己只能够不断地对喊著:「再见!我的爱人!再见…我的擎友!」来跟心中的另一半作诀别。余下的是无限的空虚… 这首歌实在感动了许多人,虽然没有具体指出发生何事。但主人翁的自疚、悔恨、难舍难离、永恒的爱念加上永别的心痛…实在触动了许多怨侣的心灵。听说许多痴男怨女百听不厌,甚至落泪。 I Think It Me He Loves His Gf Until She Dies!!

一道java题

我建议你还是先好好学习java的基础,让后再看代码,protected FlyBehavior (3); 是创建一个名字为(3)的对象。我想告诉你这个以后,别的都不用说了吧。因为4更3一样。5和6就是对象调用自己的方法了。

Beyonce&Jay-Z 的《Upgrade U》 歌词

歌曲名:Upgrade U歌手:Beyonce&Jay-Z 专辑:B"DayUpgrade UBeyoncé ft Jay-Z时间仓促,没办法修改,先凑合下呵~~~HeheheYeah b,Talk yo shitheheh (partner let me upgrade you)How you gon" upgrade meWhat"s higher than number 1you know I used to beat that blockNow I be"s the block(partner let me upgrade you)I hear you be the blockBut I"m the lights that keep the streets onNotice you the type that like to keep them on aLeash thoughI"m known to walk aloneBut I"m alone for a reasonSending me a drink ain"t appeasingBelieve meCome harder this wont be easyDon"t doubt yourself trust me you need meThis ain"t a shoulder with a chip or an egoBut what you think they all mad at me forYou need a real woman in your lifeThat"s a good lookTaking care, home is still flyThat"s a good lookImma help you build up your accountThats a good lookBetter yet a hood look,Ladies thats a good lookWhen you"re in them big meetings for the millsThats a good lookIt take me just to compliment the dealUpgrade UBeyoncé Knowles feat. Jay-ZThats a good lookAnything you cop I"ll split the billThats a good lookBetter yet a hood lookBelieve meLadies that"s a good lookPartner Let me upgrade youAudemars Piguet youSwitch your neck ties to purple labelsUpgrade youI can (up), can I (up)Lemme upgrade youPartner let me upgrade youPartner let me upgrade youFlip a new pageIntroduce you to some new things &Upgrade youI can (up),Can I (up), let meUpgrade you(partner let me upgrade you)I can do for you what Martin did for the peopleRan by the men but the women keep the tempoIt"s very seldom that you"re blessed to find your equalStill play my part and let you take the lead roleBelieve meI"ll follow this could be easyI"ll be the help whenever you need meI see you hustle wit my hustle ICan keep youFocused on yo focus I can feed youYou need a real woman in your lifeThat"s a good lookTaking careHome is still flyThats a good lookIma help you build up your accountThats a good lookBetter yet a hood lookLadies thats a good lookWhen you"re in the big meetings for the millsThat"s a good lookIt take me just to compliment the dealThat"s a good lookAnything you cop I"ll split the billThat"s a good lookBetter yet a hood lookLadies that"s a good lookPartner let me upgrade youAudemars Piguet youSwitch your neck tie to purple labels(Have you rocking purple labels!)Upgrade youI can (up), can I (up), let meUpgrade you (partner let me upgrade you)Let me upgrade youFlip a new pageIntroduce you to some new thingsUpgrade youI can (up), can I (up), let meUpgrade you (partner let me upgrade you)(Uh HOV, Uh, HOV, uh huh huh!)I B the d-boy who infiltrated all the corporate dudesThey call shots, I call audiblesJacob the jeweler, baubles, Lauraine Schwartz sorta dudeIt"s big balling baby when I"m courting youI"m talking spy bags and fly pads and rooms at the BloombergAnd rumors you on the verge of a new merge"Cause that rock on ya finger is like a tumorYou can"t put ya hand in ya new purseIt"s humorous to me they watchingWe just yachting off the island hopping offAmalfi coastMafioso, oh baby you ever seen satinNo, not the car but everywhere we areYou sure to see stars.This is high level not eye level,My bezzle courtesy of AudemarsI order yours tomorrow now look how much I saved youMama let me upgrade youJust when you think we had it allBig ends, condos, collecting carsPicture your life elevating with meYou my project celebrityI keep your name hot in them streetsThat little glimpse of lightMakes that diamond really shineAnd you already is a starUnless your flawlessThen ya dynasty ain"t complete without a chief like mePartner let me upgrade youBottom of the pageYou switch your neckties to purple labelsUpgrade youI can upCan I upLemme upgrade youPartner let me upgrade youPartner let me upgrade youFlip a new pageIntroduce you to some new thingsAnd upgrade youI can upCan I up?Lemme upgrade youPartner lemme upgrade youAudemars Piguet watchDimples in ya necktieHermes briefcaseCartier top clipsSilk lined blazersDiamond creamed facialsVi Vi X cuff links6 star pent suitesPartna let me upgrade ya grade yaPartna partna let me upgrade ya grade yaLet me let me let me upgrade ya grade yaPartna partna partna let me upgrade ya (huh...)http://music.baidu.com/song/8370210

java的lts是什么意思

LTS = Long Term Support   Long Term Support:长时间支持版本(三年) ,一般的版本支持为18个月 Ubuntu定期并有计划的不断发布其新版本,Ubuntu 一直坚持每6个月发布一个新的版本。并致力于在该发行版的支持期内持续的发布安全和关键补丁。

Kjartan Salvesen 唱的《live for today》中英文歌词

Show me the road and I will find my ownand you build the bridges and I"ll burn them down.So far away and all alone I roamI"m taking chances in the here and now.And all you wonder is who"s for salebut you won"t know now and I won"t tell.You"re always hiding, throwing up your handswhile heroes ride again.God only knows all the places I"ve beenbut I love this life that I"m live"n in andI won"t look back to regret yesterday.We"re not handed tomorrowso I"ll live for today.Another day and yet another"s done,spending the life living within the past.I"ll take the chance before the chance has gone.you never know when it will be your lastBut still you wonder who"s for saleyou won"t know now and I won"t tell.You"re always hiding, throwing up your handswhile heroes ride again.God only knows all the places I"ve beenbut I love this life that I"m live"n in.I won"t look back to regret yesterday.We"re not handed tomorrowso I"ll live for today.We"ll never know it When we run out of timeuntil it"s all over withand there"ll be nowhere to run.We"ll never say it but we"re over our headsand we"re drowning insideall of these things we"ve said.God only knws all the places I"ve beenbut I love this life that I"m live"n in.I won"t look back to regret yesterdaycuz we"re not handed tomorrowso I"ll live for today.God only knows all the places I"ve beenbut I love this life that I"m live"n in.I won"t look back to regret yesterdaycuz we"re not handed tomorrow.so I"ll live for today.

W32/SmallTrojan.A.gen!Eldorado是什么

是病毒,是一个木马病毒,用来偷号的

java怎么查看oracle sequences生成的当前id

se.currval

JanineWille多大了

JanineWille外文名:JanineWille职业:演员代表作品:《杂役》合作人物:JuergEbe

Viel Glück im neuen Jahr 是德语么?什么意思?怎么发音?

是德语。好运气在新的一年。发音我帮不了你。

单例模式 java 双重锁用synchronized修饰之后还用volatile吗

没有volatile修饰的uniqueInstance[java] view plain copypublic class Singleton { private static Singleton uniqueInstance; private Singleton(){ } public static Singleton getInstance(){ if(uniqueInstance == null){ //#1 synchronized(Singleton.class){ //#2 if(uniqueInstance == null){ //#3 uniqueInstance = new Singleton(); //#4 System.out.println(Thread.currentThread().getName() + ": uniqueInstance is initalized..."); //#5.1 } else { System.out.println(Thread.currentThread().getName() + ": uniqueInstance is not null now..."); //#5.2 } } } return uniqueInstance; } } 这样可能会导致结果 Singleton被实例化两次 ,这样就不符合单例的特点原因分析:1. thread2进入#1, 这时子线程的uniqueInstance都是为空的,thread2让出CPU资源给thread32. thread3进入#1, 这时子线程的uniqueInstance都是为空的, thread3让出CPO资源给thread23. thread2会依次执行#2,#3,#4, #5.1,最终在thread2里面实例化了uniqueInstance。thread2执行完毕让出CPO资源给thread34. thread3接着#1跑下去,跑到#3的时候,由于#1里面拿到的uniqueInstance还是空(并没有及时从thread2里面拿到最新的),所以thread3仍然会执行#4,#5.15. 最后在thread2和thread3都实例化了uniqueInstance例子2:用volatile修饰的uniqueInstance这里就不贴重复的代码了,因为只是加多一个volatile来修饰成员变量:uniqueInstance,这样可以创建出一个单例实例。原因分析:volatile(java5):可以保证多线程下的可见性;读volatile:每当子线程某一语句要用到volatile变量时,都会从主线程重新拷贝一份,这样就保证子线程的会跟主线程的一致。写volatile: 每当子线程某一语句要写volatile变量时,都会在读完后同步到主线程去,这样就保证主线程的变量及时更新。1. thread2进入#1, 这时子线程的uniqueInstance都是为空的(java内存模型会从主线程拷贝一份uniqueInstance=null到子线程thread2),thread2让出CPU资源给thread32. thread3进入#1, 这时子线程的uniqueInstance都是为空的(java内存模型会从主线程拷贝一份uniqueInstance=null到子线程thread2), thread3让出CPO资源给thread23. thread2会依次执行#2,#3,#4, #5.1,最终在thread2里面实例化了uniqueInstance(由于是volatile修饰的变量,会马上同步到主线程的变量去)。thread2执行完毕让出CPO资源给thread34. thread3接着#1跑下去,跑到#3的时候,会又一次从主线程拷贝一份uniqueInstance!=null回来,所以thread3就直接跑到了#5.25. 最后在thread3不再会重复实例化uniqueInstance了

我想问一下关于java类的加载顺序问题,最好不要深到什么根加载器,怕听不懂

严格来说,你那个不叫单例,单例一个比较明显的特点就是构造函数私有化。这种机制说起来话长,你把public static int b = 0;理解成public static int b; public int b = 0;就好了,静态变量在类加载时已经为其分配了内存空间,但是并没有立即为其赋值,只有执行到赋值语句时才赋值的,你的构造函数先执行的执行完之后b = 1但是最后又执行b = 0的操作,于是结果便是0了,a就不一样了,你并没有赋值,所以它相当于就被改变了一次于是就是1了

如何控制JAVA中一个类只能生成一个对象

去掉public的构造函数。可以去搜索一下单例模式,就是解决你这个需求的

能具体回答一下“java中如何把一个类实例定义为一个全局对象 ”吗??

你可以使用单例模式public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){}//私有化构造方法 public static Singleton getInstance() { return instance; }}

JAVA,什么是对象, Intent it = new Intent( ); 哪个是对象? 麻烦举

it是对象,new就是实例化一个类,并返回它的指针给it

JAVA面试题---设计一个类,该类只能生成一个实例

单例模式

java 23种设计模式

那个男人,她认出来岂的确体质

JAVA 什么是设计模式,请举例说明其中一个。

面向对象,区别于c的面向过程

JAVA的单例模式到底有几种变现形式?请列举?

2种public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){ } public static Singleton getInstance(){ return instance; } }和public class Singleton { private static Singleton instance = null; private Singleton(){ } public static Singleton getInstance(){ if(instance==null){ instance = new Singleton(); } return instance; } }

如何在java中实现singleton模式

私有化默认构造方法,声明一个静态方法对外提供此类的实例对象。

用myeclipse,在jsp中写java代码,需要导包时不提示,必须手动导包,怎样才能让它提示并且自动导包

MyEclipse 提示设置JSP自动提示1、快捷键提示代码window-->Preferences的General-->Keys下修改Content Assist的快捷键为Alt+/,这样就可以通过快捷键得到提示代码一般,快捷键默认就是Alt+/2、自动提示window-->preferences的java->Editor->Code Assist,选上Enable auto activation选择框3、增强自动提示如果在上面2中的Auto activation triggers for Java中只有.就是说只有在输入.之后才会自动提示,可以修改一下这个配置,方法:* 打开MyEclipse,进入window-->Preferences,选择java-->Editor-->Content Assist* 在Auto Activation triggers for java这个选项的.后随便加几个字母,例如aaa方便后面的查找修改,点击OK按钮* 在File-->Export弹出的窗口中选择Perferences,点击下一步,选择导出文件路径* 用记事本打开刚刚保存的*.epf文件* ctrl + F快捷键查找刚输入的.aaa* 把.aaa改成.abcdefghijklmnopqrstuvwxyz(,保存,关闭记事本*回到MyEclipse界面,File-->Import,在弹出的窗口中选择Perferences,下一步,选择刚修改的*.epf文件,点击“打开”,点击“Finish”PS:如果1和2都不行的话,那就是配置文件的事了,在安装目录找到eclipse.ini文件,用记事本打开,将"-Duser.language=en"修改为"-Duser.language=zh",修改完后记着重启MyEclipse哦2.xml自动提示:用eclipse,在导入相应的包后(有人说不导包也有提示,因为默认的eclipse导入了jdk的包),eclipse会有代码提示功能。那么XML文件能不能也这样呢?其实也是可以的,只不过导包的地方不一样。下面以spring为例(虽然Myeclipse6.5中已经集成了,这里只是示范说明)。进入:window -> Preference... -> MyEclipse -> Editors -> XML ->XML Catalog选择:选中“User Specified Entries”,点击“Add...”按钮填入:URI: 请选择本地文件系统上SPRING_HOMEdist esourcesspring-beans-2.0.xsd 文件Key Type: 选择Schema LocationKey:http://www.springframework.org/schema/beans/spring-beans-2.0.xsd点击确定将spring配置文件关闭再重新打开即可。可以使用MyEclipse XML Editor打开这些xml文件。3.myeclipse的自动提示:1、window---preferences---Java---Editor---Contenet Assist接着在右下角“Auto activation triggers for Java:”这句话右边文本框值改成".abc",点击“OK”2、File---Export---General---preferences“To preference file:”右边选上配置文件的路径,你可选择路径为myEclipse的安装目录下,在随便给文件取个名字,比如“set.epf”3、以文件“set.epf”为例,打开“set.epf”,ctrl+f 找到“.abc”,然后改成“.abcdefghijklmnopqrstuvwxyz”,保存。(以前我初次操作的时候,以为在步骤一里直接在那文本框里写上".abc……z"不更省事,可一试,里面只能写上4个字符,所以,就不得不有这个步骤三)4、File---import---General---preferences“from preference file:”右边选上刚配置文件的路径,finish 步骤4与2相似4.让MyEclipse能够智能感应提示jQuery的函数myeclipse本身对jquery没有提供支持,你可以去尝试下aptana.跟myeclipse一样,aptana也是一个庞大的eclipse插件。aptana主要的作用就是js的支持,集成了jquery,ext,prototype等常见的各种js框架,智能感知更是最基本的功能了。aptana对js的支持不是myeclipse能比的了的,这是写js的圣器。所以你用惯了myeclipse再用aptana不会有很大习惯的改变。当然你可以把两个插件都装上。最好弄个干净的eclipse,用link的方式装,否则安装起来可能会有点麻烦。5.myelipse智能提示打开 Eclipse -> Window -> Perferences,会打开个Perferences 的设置界面。会看到只有一个"."存在。表示:只有输入"."之后才会有代码提示,我们要修改的地方就是这里,可是Eclipse默认只允许输入4个自定义字符。不过我们可以把当前的设置导出,保存为一个文件,然后在文件中修改,再导入设置,这样就可以突破Eclipse的限制。先把上图中"."的地方输入几个随便的字符,例如"asdf",点最下面的"OK"来保存设置。然 后打开 Eclipse的 File -> Export,在窗口中展开 General -> Perferences-->Exportall然后点击 NEXT。然后点击"Browse"选择任意的一个路径,保存配置文件,然后点击"Finish"。用记事本打开刚才保存的那个配置文件(扩展文件名:*.epf),按"ctrl +F",输入刚才设置的"asdf",找到刚才字符串。把"asdf"修改为"abcdefghijklmnopqrstuvwxyz.",然后保存,退出记事本。打 开Eclipse的 File -> Import 然后在打开的窗口里展开 General ->Perferences,点击NEXT,选中刚才修改过的配置文件,Finish。现在,再打开Window ->Perferences,并依次展开 Java -> Editor -> ContentAssist,会发现已经超过了4个字符,也就是说我们输入任何字母和"."都会有代码提示了。

在java中,singleton是什么啊?如果让写一个singleton,该怎么写呢?

packagetest;publicclasssingleton{privatesingletons;privatesingleton(){}publicstaticsingletongetsigleton(){if(s==null)s=newsingleton();returns;}}这就是一个单例模式,我想应该不用注释了,原理就是这个类的构造方法private了,所有在外边不能调用,也就不能newsingleton();得到实例,那么想得到实例就得调用它的静态方法getsigleton();即singleton.getsigleton();就会返回一个singleton的实例,注意此方法中的语句,即如果你是第一次调用这个方法那么它会给你new一个实例,以后再调用得到的都是这个实例,也就是说从始至终就只有一个singleton的实例,这就是单例模式。

javabean、jsp、serverlet是什么关系?

JSPJSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。serverlet是用java语言编写的小程序。servlet可以被认为是服务器端的applet。servlet被Web服务器加载和执行,就如同applet被浏览器加载和执行一样。相对于applet而言。applet - servlet 对应的。要写servlet,你先安装一个jdk1.3吧,再装一个服务器,如Tomcat,比较好,简单实用写serlvet够了。如果你想写EJB等东西 ,可能要装一个weblogic了。beans可以被其他的java程序调用完成特定功能或者信息存储。JavaBean 最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)。 JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是用一组特性创建,以执行其特定任务的对象或组件。它们还有从当前所驻留服务器上的容器获得其它特性的能力。这使得 bean 的行为根据特定任务和所在环境的不同而有所不同。 Enterprise Bean 与 JavaBean 不同。JavaBean 是使用 java.beans 包开发的,它是 Java 2 标准版的一部分。JavaBean 是一台机器上同一个地址空间中运行的组件。JavaBean 是进程内组件。Enterprise Bean 是使用 javax.ejb 包开发的,它是标准 JDK 的扩展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多台机器上跨几个地址空间运行的组件。因此 Enterprise Bean 是进程间组件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 则用作分布式商业对象. JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。 用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。 JavaBean是Sun微系统的一个面向对象的编程接口,它可以让你建可重用应用程序或能在网络中任何主流操作系统平台上配置的程序块,称作组件。像Java applet一样,JavaBeans组件(或“Beans”)能够给予万维网页面交互的能力,例如:计算感兴趣的比率或是根据用户或浏览器的特性改变页面内容。 从用户的观点来看,一个组件可以是一个与你交互的按钮或是一个当你按下按钮它便开始的小计算程序。从一个开发者的观点来看,那个按钮组件和计算器组件是分别被创建的,并且他们可以一起使用或是在不同的应用程序或情况下和不同的组件产生不同的组合来使用。 当组件或Beans在使用过程中,Bean的性质(比如,一个窗口的背景色)对于其他Bean来说是可见的,并且,之前没“碰到”过的Bean也可以动态地获悉彼此的特性并从而进行交互。  Bean是随Sun的Bean开发包(BDK)开发出来的,并且能在任何主流操作系统平台的许多应用程序环境(人们所说的“容器”,container)中运行,包括浏览器,文字处理软件,以及一些其他应用。  要想用JavaBeans建一个组件,你必须用Sun的Java编程语言来写程序,并且在程序中包括描述组件特性的JavaBeans语句,这些组件特性例如:用户接口的特性,以及触发一个bean和在同一个容器中或网络其他地方的其他的bean交流的事件。 JavaBeans给Java应用程序提供了OpenDoc和ActiveX接口已提供的这种复合文档的能力。 JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。1. 一个开发良好的软件组件应该是一次性地编写,而不需要再重新编写代码以增强或完善功能。因此,JavaBean应该提供一个实际的方法来增强现有代码的利用率,而不再需要在原有代码上重新进行编程。除了在节约开发资源方面的意义外,一次性地编写JavaBean组件也可以在版本控制方面起到非常好的作用。开发者可以不断地对组件进行改进,而不必从头开始编写代码。这样就可以在原有基础上不断提高组件功能,而不会犯相同的错误。2. JavaBean组件在任意地方运行是指组件可以在任何环境和平台上使用,这可以满足各种交互式平台的需求。由于JavaBean是基于Java的,所以它可以很容易地得到交互式平台的支持。JavaBean组件在任意地方执行不仅是指组件可以在不同的操作平台上运行,还包括在分布式网络环境中运行。3.JavaBean组件在任意地方的重用说的是它能够在包括应用程序、其他组件、文档、Web站点和应用程序构造器工具的多种方案中再利用。这也许是JavaBean组件的最为重要的任务了,因为它正是JavaBean组件区别于Java程序的特点之一。Java程序的任务就是JavaBean组件所具有的前两个任务,而这第3个任务却是JavaBean组件独有的。 JavaBean是可复用的平台独立的软件组件,开发者可以在软件构造器工具中其直接进行可视化操作。 软件构造器工具可以是Web页面构造器、可视化应用程序构造器、CUI设计构造器或服务器应用程序构造器。有时,构造器工具也可以是一个包含子一些bean的复合文档的文档编辑器。 JavaBean可以是简单的CUI要素,如按钮或滚动条;也可以是复杂的可视化软件组件,如数据库视图,有些JavaBean是没有GUI表现形式的,但这些JavaBean仍然可以使用应用程序构造器可视化地进行组合。 一个JavaBean和一个Javaapplet相似,是一个非常简单的遵循某种严格协议的Java类。每个JavaBean的功能都可能不一样,但它们都必须支持以下特征。 一个bean没有必须继承的特定的基类或接口。可视化的bean必须继承的类是java.awt.Component,这样它们才能添加到可视化容器中去,非可视化bean则不需要继承这个类。有许多bean,无论是在应用程序构造器工具中,还是在最后创建好的应用程序中,都具有很强的可视化特征,但这并非每个bean必须的特征。 在使用Java编程时,并不是所有软件模块都需要转换成bean。Bean比较适合于那些具有可视化操作和定制特性的软件组件。 从基本上说,JavaBean可以看成是一个黑盒子,即只需要知道其功能而不必管其内部结构的软件设备。黑盒子只介绍和定义其外部特征和与其他部分的接口,如按钮、窗口、颜色、形状、句柄等。 通过将系统看成使用黑盒子关联起来的通讯网络,我们可以忽略黑盒子内部的系统细节,从而有效地控制系统的整体性能。作为一个黑盒子的模型,JavaBean有3个接口面,可以独立进行开发。 1. JavaBean可以调用的方法。 2. JavaBean提供的可读写的属性。 3. JavaBean向外部发送的或从外部接收的事件。JavaBean设计注意事项 1.不要试图在JavaBean返回的HTML中放置任何字体尺寸。 并不是所有的浏览器都相同。很多浏览器无法处理完整的字体尺寸。 2.不要试图在JavaBean返回的HTML中放置任何脚本或者DHTML。 向页面直接输出脚本或者DHTML相当于自我毁灭,因为某些浏览器版本在处理不正确的脚本时会崩溃(非常少但是有)。如果用户的JavaBean在运行时是动态的推出复杂的HTML语言,用户将陷入调试的噩梦。另外,复杂的HTML将限制JavaBean的寿命和灵活性。 3.不要提供任何的选择。

这几天在夜店经常听到一英文歌,几个人合唱的的,歌词里有一段什么什么Michael Jackson,

《爆炸新闻》这个是JM模仿MJ声音唱的。

什么是jsp?它是属于JAVA中吗?

JSP(Java Server Pages)是由Sun Microsystems公司为主创建的一种动态网页技术标准,是一种在服务器端运行的网页脚本语言.

jsp和javaEE有什么区别

jsp 我们写的就是 java代码和页面展示代码但是javaee 又被叫做mvc模式是分层来写 java代码和 页面展示代码 分开 了

JayDratler人物介绍

JayDratlerJayDratler是一名编剧,代表作品有《导弹之父--冯·布劳恩》、《拉斯维加斯故事》等,合作艺人有尤尔根斯·库尔特。外文名:JayDratler职业:编剧代表作品:《导弹之父--冯·布劳恩》,《拉斯维加斯故事》合作艺人:尤尔根斯·库尔特

html和javascript的区别?

html是用来在浏览器上面显示文字 图片 等信息的javascript 主要是控制一些动态的 比如鼠标放在上边绿条码上 鼠标箭头变成了小手

jsp是不是javascript的简写?

你们能不能答点有难度的问题啊?

java jsp页面怎么写java类?怎么调用java代码?

导入java<%@page import="java.util.List"%>写java代码<% java代码%>

javascript与jsp,java有什么区别?

javascript是种脚本语言,是在客户端运行的,比如你看到的在网页上的时钟,或者一些特效,一般就是用的这种语言。jap是动态网页,和html页面不一样,不过显示的时候都是一样的Java能简单了,是们语言,和c语言,c++,vb,等一样,开发语言,不过语法和编程思想不一样罢了。

javascript、JSP、JS有什么区别和联系?

js是javascript的缩写。以下是JSP与JS的区别和联系:名字:JS:JavaScriptJSP:JavaServerPages执行过程:JSP先翻译,翻译成Servlet执行如:test.jsp要变成test_jsp.java然后编译成test_jsp.class而test_jsp.java本身就是一个servlet.所以jsp只是servlet的一个变种,方便书写html内容才出现的。servlet是根本,所有jsp能做的,servlet全能做。JS:是一种基于对象的客户端脚本语言。目的是解决服务器端语言。如:Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JS可以直接嵌入到html代码中进行解析执行,非常简单易学,可以产生很多动态的效果。形象比较:JS是在客户端执行的,需要浏览器支持JavaScript。JSP是在服务器端执行的,需要服务器上部署支持Servlet的服务器程序。JS代码能够直接从服务器上download得到,对外是可见的,jsp(和翻译后的Servlet代码)是对外不可见的。JS和JSP相比较:虽然JS可以再客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务。如:访问数据库和图像处理等等。JSP在HTML中用<%%>里面实现。JS在HTML中用实现。执行过程:JSP:1、JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以Servlet可以看成是运行时的Servlet。2、JSP容器也就是Servlet容器管理JSP页面生命周期分为两个阶段,即转换阶段和执行阶段。3、转换阶段:当有一个对JSP页面的请求到来时,JSP容器检查JSP页面的语法是否正确,将JSP页面转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件。4、执行阶段:Servlet容器加载转换后的Servlet类。JS:JavaScript通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。运行位置不同:JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。扩展资料:JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

jsp跟java是一个东西吗

Java" 不是由几个单字的首字所组成, 而是从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

javascript是jsp吗

不是,

jsp中可以写入javascript么?

可以<script></script>

html和javascript有什么区别?

jsp是将动态的代码嵌入到静态的html中。从而产生动态的输出最简单的jsp文件是直接将一个html文件另存为.jsp文件,然后将它放在web应用服务的目录下即可。jsp的作用。jsp技术的出现,大大提高了基于java技术的web应用开发的效率.他将内容的生成和显示分离,使得网页设计人员和java程序员的工作关系不再那么紧密,网页设计人员只需要专注于网页的设计即可,而java程序员也可以不再关心html的编写。通过将商业逻辑封装在JavaBean或者EnterpJavaBean中,页面设计人员可以在仅知道相关的输出接口的基础上来设计网页。jsp比asp或者php比较起来的优势是:jsp采用的是java语言,它拥有java所有的优势,比如面向对象、“一次编写、到处运行”的跨平台特性等。怎么理解JavaScript?JavaScript虽然它里面有个“java”,但其实和java并没有多大关系。java是一种面向对象的语言,而javas是基于对象(以及事件)的。JavaScript的主要作用是用在浏览器端,用于产生一些动态效果或者用于对html表单进行客户端的验证等。在html中,使用<Script>和</Script>引入JavaScript。在JavaScript中,所有内置对象名称和内建函数名都是小写的。jsp和JavaScript的区别。JSP,Java服务页.全称为Java server Pages.JSP作为动态网页的设计语言,在传统的网页HTML中加如JAVA程序片段(scriptlet)和JSP标记(tag),构成JSP网页(*.jsp).它与Javascript完全是两个不同的东西.JSP由SUN公司推出,基于java技术,用于创建可支持跨平台及跨Web服务器的动态网页.Javascript是NetScape公司的产品,比JSP简单得多,主要运用于客户端,实现基于浏览器上的一些动态功能,能够在客户端动态生成HTML.

javascript和jsp有什么区别,都是什么意思

javascript 是用来做客户端的。网页上的效果,表单验证等。JSP是服务器端脚本语言。就是后台的逻辑,数据存储。等。

JAVA

声明准确的来说是在JSP页面内来声明

JSP,Java和JavaScript有什么区别和联系

jsp会编译成java代码,里面的标签,脚本样式都会被转成字符串存起来,是在服务器运行的,只是用来输出原始html页面(单纯的字符串)。javascript是在浏览器里运行的,可以动态修改已下载到浏览器的页面。

javascript、JSP、JS有什么区别和联系?

js是javascript的缩写。以下是JSP与JS的区别和联系:名字:JS:JavaScriptJSP:JavaServerPages执行过程:JSP先翻译,翻译成Servlet执行如:test.jsp要变成test_jsp.java然后编译成test_jsp.class而test_jsp.java本身就是一个servlet.所以jsp只是servlet的一个变种,方便书写html内容才出现的。servlet是根本,所有jsp能做的,servlet全能做。JS:是一种基于对象的客户端脚本语言。目的是解决服务器端语言。如:Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JS可以直接嵌入到html代码中进行解析执行,非常简单易学,可以产生很多动态的效果。形象比较:JS是在客户端执行的,需要浏览器支持JavaScript。JSP是在服务器端执行的,需要服务器上部署支持Servlet的服务器程序。JS代码能够直接从服务器上download得到,对外是可见的,jsp(和翻译后的Servlet代码)是对外不可见的。JS和JSP相比较:虽然JS可以再客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务。如:访问数据库和图像处理等等。JSP在HTML中用<%%>里面实现。JS在HTML中用实现。执行过程:JSP:1、JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以Servlet可以看成是运行时的Servlet。2、JSP容器也就是Servlet容器管理JSP页面生命周期分为两个阶段,即转换阶段和执行阶段。3、转换阶段:当有一个对JSP页面的请求到来时,JSP容器检查JSP页面的语法是否正确,将JSP页面转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件。4、执行阶段:Servlet容器加载转换后的Servlet类。JS:JavaScript通常是运行在前台,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。运行位置不同:JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。扩展资料:JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

Jsp页面中java表达式语法格式是什么

<% =表达式 %>

求JAVA编程。

留个邮箱,写好了打包发给你

Jah Mali的《Victory》 歌词

歌曲名:Victory歌手:Jah Mali专辑:Digital Blend Vol. 2ti:Victoryar:P.diddyal:No Way Outby:Duke_zn47 Form the motherf4ckin NC cityOne, one twoCheck me out right here yoYo, the sun don"t shine foreverBut as long as it"s here then we might as well shine togetherBetter now than never, business before pleasureP-Diddy and the Fam, who you know do it better?Yeah right, no matter what, we air tightSo when you hear somethin, make sure you hear it rightDon"t make a ass outta yourself, by assuminOur music keeps you movin, what are you provin?You know that I"m two levels above you babyHug me baby, I"ma make you love me babyTalkin crazy ain"t gonna get you nuthin but chokedAnd that jealousy is only gonna leave you brokeSo the only thing left now is God for these catsAnd BIG you know you too hard for these catsI"ma win cause I"m too smart for these catsWhile they makin up facts (uhh) you rakin up platsIn The Commision, you ask for permission to hit emHe don"t like me, him and wild wifey was wit emYou heard of us, the murderers, most shadyBeen on the low lately, the feds hate meYou hesitatin, I"m in your mama crib waitinDuct tapin, your fam destinylays in my hands, gat lays in my waistFrancis, M to the iz-H phenominalGun rest under your vest by the abdominalRhyme a few bars so I can buy a few carsAnd I kick a few flows so I can pimp a few hoesExcellence is my presence, never tenseNever hesitant, leave a nigga bent real quickReal sick, brawl nights, I perform like MikeAnyone -- Tyson, Jordan, Jacksonaction, pack guns, ridiculousAnd I"m, quick to bust, if my ends you touchKids or girl you touch, in this world I clutchTwo auto-matoes, used to call me fatsoNow you call me Castro, my rap flowsmilitant, y"all faggots ain"t killin shitOoops Cristal keep spillin shit, you overdid it homesYou in the danger zone, you shouldn"t be aloneHold hands and say it like meThe most shady, Frankie baby, fantasticGraphic, tryin to make dough, like JurassicPark did quick to spark kids who start shitSee me, only meThe Underboss of this holocaustTruly yours, Frank WhiteWe got the real live shit from front to backTo my people in the world, where the fuck you at?Where my niggaz is at? (2X)Where the fuck my bitches at?Where my bitches is at?Put your money on the table and get your math onBreak it down, split it up, get your laugh onSee you later Dog, I"ma get my stash onThere"s a bed full of money that I get my ass onI never lose the passion to go platinumSaid I"d live it up til all the cash goneAin"t that funny, only use plastic, craft itto make classics, hotter than acidP-D, rollin on your tape or CDThe girl-boy killa, no team illaThe Fam-o, ammo, is every channelWe been hot for a long time burnin like a candleWhat you can do is check your distributionMy songs bump in Houston like Scarface produced emYou ain"t gotta like me, you just madCause I tell it how it is, and you tell it how it might beWe got the shit, Mac tight, brass knuckles and flashlightsThe heaters in the two-seaters, with two midasSenoritas, kiss rings when you meet usP-Diddy run the city, show no pityI"m the witty one, Frank"s the crook from the Brook"Matty broke the neck of your coke connectNo respect squeeze off til all y"all diminishShootouts for twenty minutes, until we finishVenice took the loot, escaped, in the CoupeBreak bread, with the Kiss, Peniro, Sheek LouchBlack Rob joined the mob, it ain"t no replacin himNiggaz step up, with just Mase and "emplacin them in funerals, criminals turned arousedThe Brick City, nobody come off like P-DiddyBusiness wise, I play menHide money on the Island Cayman, y"all just betray menYou screamin, I position, competitionNother day in the life of the ComissionWe got the real live shit from front to backTo my niggaz in the world, where the fuck you at?Where my niggaz is at? (4X)Where the fuck my bitches at?Where my bitches is at?Aiyyo, can you hear me out there?Aiyyo turn me up, nobody can hear me out thereThat"s good, it"s all fucked up nowY"all know it"s all fucked up now right?What the fuck I"ma do now?What I"ma do now?Can y"all hear me out there?Can y"all hear me out there?It"s all fucked up nowWhat I"ma do now, huh?What I"ma do nowIt"s all fucked up nowhttp://music.baidu.com/song/7474351

java编程。定义一个教师类,有姓名职称工资和工龄,工资的初始值是1000.

public class Teacher { private String name; private String title; private double money; private double seniority; public Teacher() { this.money = 1000; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } public double getSeniority() { return seniority; } public void setSeniority(double seniority) { this.seniority = seniority; } public double wages() { if (this.title.equals("助教")) { return (this.money + (this.seniority * 10)) * 1.3; } return this.money; } public void info() { System.out.println("姓名: " + this.name); System.out.println("职称: " + this.title); System.out.println("工资: " + wages()); System.out.println("工龄: " + this.seniority); } public static void main(String[] args) { Teacher t1 = new Teacher(); t1.setName("张三"); t1.setTitle("教师"); t1.setMoney(5000); t1.setSeniority(5); t1.info(); Teacher t2 = new Teacher(); t2.setName("李四"); t2.setTitle("助教"); t2.setMoney(1500); t2.setSeniority(1); t2.info(); }}

Java类的构造方法,怎么调用构造方法 我写的有错误

你关系弄反了,应该是sonextendsfather。。。你子类里面没有写构造函数是不是。。。。系统会默认调用父类的无参构造函数,但是你写了一个带参的构造函数,而且把无参的构造函数删掉了,当然会报编译错误啊目测你的代码是;publicclassparent{publicparent(stringname){}}publicclasssonextendsparent{//如果这里不显示调用父类的无参构造函数,编译报错....publicson(stringname){super(name);//这样才是正确地}}

sonarqube怎么自定义Java代码规则

如何导入Sonar代码扫描规则和设置默认代码扫描规则。工具/原料SonarQube方法/步骤1进入配置页面点击“质量管理”菜单 ,在质量管理页面点击右上角“恢复设置”。2导入代码扫描规则在“恢复设置”对话框中点击“选择文件”按钮,选择代码扫描规则XML文件,再点击“恢复按钮”。3设置默认代码扫描规则点击刚导入的代码扫描规则右边的“设为默认”链接,可将此规则设置为默认的Java代码扫描规则。

Jacoco和SonarQube的测试覆盖率不一样

https://stackoverflow.com/questions/57601376/sonarqube-jacoco-coverage-discrepancies Jacoco is based on bytecode analysis. The exec file is combined with the class files to get the final code coverage values. The problem in my case was that the bytecode generated by Eclipse compiler for Java (for Jacoco eclipse plug-in) and that produced by Javac (during analysis on sonar runner) were different. Hence, the code coverage values generated by both tools were different. https://stackoverflow.com/questions/25376512/code-coverage-percentage-values-in-jacoco-eclipse-plug-in-and-sonarqube-are-diff ` I was able figure out what was wrong with the setup that we were using, by looking through our SonarQube analysis deeper and comparing package by package what was being analyzed. SonarQube was analyzing the whole repository, and the default report for coverage that was displayed was reflecting using not only the jacoco.xml but also looking at some code from other types. To see the accurate code coverage, I had to change where we were looking in SonarQube"s analysis, to the directory which housed the Java code exclusively thus aligning the coverage percentages between the two services. Share `

APICloud 社区api.ajax接口多个文件上传怎么传参

通过post请求上传,有两种方式,跟form表单通过file标签提交文件是一样的。1、一种是键值对的方式,也就是一个name对应一个file:api.ajax({ url: "http://host/upLoad", method: "post", report:true,//回调上传进度 data: { files: { file1: "/sdcard/a.png", file2: "/sdcard/b.png", file3: "/sdcard/c.png", } }}, function(ret, err) { if (ret) { console.log(JSON.stringify(ret)); } else { console.log(JSON.stringify(err)); }});2、另外一种是上传文件数组,这种方式你的服务器要配合做特殊的处理进行支持:api.ajax({ url: "http://host/upLoad", method: "post", report:true,//回调上传进度 data: { files: { images: ["/sdcard/a.png", "/sdcard/b.png", "/sdcard/c.png"] } }}, function(ret, err) { if (ret) { console.log(JSON.stringify(ret)); } else { console.log(JSON.stringify(err)); }});

JAVA里Flie类的creatnewfile与creattempfile有什么不同

后者的文件建立在默认的临时文件目录中 不在当前目录createNewFilepublic boolean createNewFile()throws IOException当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。检查文件是否存在,若不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。 createTempFilepublic static File createTempFile(String prefix,String suffix)throws IOException在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。调用此方法等同于调用 createTempFile(prefix, suffix, null)。 参数:prefix - 用于生成文件名的前缀字符串;必须至少是三字符长suffix - 用于生成文件名的后缀字符串;可以为 null,在这种情况下,将使用后缀 ".tmp" 返回:表示新建空文件的抽象路径名

bean在java中是什么意思,为什么要叫这个名字?

干了这么多年 开发,还真不知道为什么叫bean这个名字,其实也就是个名字而已,谁是定义者,爱怎么叫就怎么叫。网上查了确实没有什么资料,看了一篇java当时选名字的文章,感觉跟楼上的人说的感觉差不多,javabean不就是"咖啡豆"的意思吗。。。文章链接: https://blog.51cto.com/yqgao/157060 ========================================================2000年度的JavaOne国际会议大厅热闹非凡,一阵阵浓郁的咖啡味儿香气扑鼻。从世界各地汇集到旧金山参加会议的Java精英们兴奋异常,排着长队,等待得到一杯由Java语言控制的咖啡机煮制的免费咖啡。这是一个特殊设计的全透明咖啡机。当您按下按钮时,咖啡豆从玻璃管输送到研磨器。磨制后的咖啡粉由另一个玻璃管送到煮制机。沸腾的水滴入咖啡粉中,一杯醇香四溢的咖啡传送到您的手中….。Java语言确实与咖啡有着不解之缘。这还得从它的命名说起。关于Java的命名来由,在美国硅谷地区有许多不同版本的故事。升阳公司(Sun Microsystems)的创建者和前CEO 简姆斯 古斯林(James Gosling)本人也加入了讲述这个故事的行列。最初这个为TV机顶盒所设计的语言在公司内部一直称为Green项目。“我们的新语言需要一个名字。” 简姆斯.古斯林一直在考虑这个问题。 有一天,简姆斯 古斯林注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。 如果通过正式程序来注册产品的名称将即费时又费钱。简姆斯 古斯林决定通过市场部门,请来了一个命名顾问,召开命名征集会。当时,因为没有一个合适的名字,他们不得不延后这个语言的面世。在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到简姆斯 古斯林的坚决反对而作罢。排在第二和第三的都没有通过律师这一关。简姆斯 古斯林最喜欢的就是排在第三位的Lyric(抒情诗)。只有排在第四位的名字、得到了所有人的认可和律师的通过。这个名字就是Java。是谁在命名征集会上提议Java的呢? 简姆斯 古斯林回忆道,“市场部组织了命名会,命名顾问主持了会议,我们喊叫着列出了一大堆名字。我记得第一个提议名字Java的是马克 奥颇门(Mark Opperman)。”马克 奥颇门是在一家咖啡店与同事品尝咖啡时得到灵感的。Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。从此一个即好听又好记、具有强大的生命力的编程语言Java诞生了。

Beyonce 和 JAY-Z 是夫妻吗?

yes

为什么Java类只能继承一个父类

多重继承是一件很复杂、很容易产生问题的功能。它跟Goto语句一样,利弊交织。以下分两部分叙述,第一部分是Python多重继承遇到的麻烦,第二部分是Java和Ruby如何折中多重继承需求。============================================第一部分:Python是支持多重继承的,但为了解决多重继承的方法查找顺序问题(被称为MRO),有一场苦难史:1. 传统模式直接使用深度优先算法(并且,从左向右),每个类选择其第一次出现的位置。比如class A:def save(self): passclass B(A): passclass C:def save(self): passclass D(B, C): pass作为D类的一个实例,它的成员寻找顺序是:D、B、A、C。但当碰到如下这样一个“菱形继承”就麻烦了:class A:def save(self): passclass B(A): passclass C(A):def save(self): passclass D(B, C): pass作为D类的一个实例,寻找顺序也是D、B、A、C,但调用其save方法时,到底是调用A中的呢?还是C中的呢?直观上看,应该是C。这里有产生矛盾了。2. Python2.2的new-style class模式Python2.2中引进了new-style class,说白了就像java一样,所有类都继承自最根本的object类。这就让“菱形继承”变成十分普遍,于是只能改变MRO策略。仍然使用深度优先搜索、从左向右,但是每个类选择其最后一次出现的位置。这样一来,对上面的“菱形继承”就处理比较完美了,形成的顺序是:D、B、C、A,越是公用基础类,越放在后面。但是,碰到交叉继承,就又懵了。<img src="https://pic4.zhimg.com/d067bccb353065c3276a96f6aab93a77_b.jpg" data-rawwidth="113" data-rawheight="179" class="content_image" width="113">这里,X和Y都继承自O,A继承(X,Y)(注意,有先后顺序),B继承(Y,X),再有个最下面的类继承(A,B)。这里,X和Y都继承自O,A继承(X,Y)(注意,有先后顺序),B继承(Y,X),再有个最下面的类继承(A,B)。按照上述算法出来的结果是:?、A、B、Y、X、O。这就有些奇怪了,明明A在B前,A继承的X在Y前,可为啥X的优先级比Y要低呢?3. C3算法1996年,一帮牛人写了一篇文章A monotonic superclass linearization for Dylan,提供了一个基于层级计算的线性MRO算法,被称为C3,整体上比较合理了。(算法不详说了)在2012年被加入了Dylan语言,2007年加入了Python2.3,此外还有Perl 6、Parrot等语言之中。这样虽说基本解决了计算问题,但多重继承本身就有很多让人疑惑的地方,比如:<img src="https://pic4.zhimg.com/c1e6e9a3a1df789b9686582a9367326b_b.jpg" data-rawwidth="251" data-rawheight="171" class="content_image" width="251">参考文献:参考文献:http://python-history.blogspot.jp/2010/06/method-resolution-order.htmlThe Python 2.3 Method Resolution Order============================================第二部分:多重继承那么复杂,可单一继承又那么拘束,咋办呢?1. 接口继承Java就是那么做的,只允许单一继承类(方法的实现),但可以继承多个接口(方法的定义)。Java的接口继承功能,既实现了静态语言的多重继承性,又避免了多重继承的数据构造的冲突和类层次的复杂性。但是,我们并不能说接口是解决问题的完美方案。接口也有不能共享实现的缺点。本来只是为了跨越继承层次来共享代码,现在却需要另外生成一个独立对象,而且每次方法调用都要委派给这个对象,这实在是不太合理,而且执行的效率也不高。——《松本行弘的程序世界》2. Mix-in这是Ruby所推崇的,最初在Lisp中开始使用。规则如下:通常的继承都是单一继承。第二个以及两个以上的父类必须是Mix-in的抽象类(即不能单独生成实例,不能继承普通类)。这种规则下,既能够保持单一继承的结构,又能用Mix-in来共享方法的实现。

乐富豪jade1音箱上市时间

2023年8月10日。乐富豪是世界著名的音响品牌,出产于1932年,英国wharfedale沃夫德尔享誉全球唯一超越八十多年音响设计及制造的国际知名品牌,根据乐富豪官网的jade1产品预告是预计2023年8月10日上市。

在centos6中部署tomcat项目,但是总报java.net.ConnectException: Connection refused,请大神解惑

你项目中使用ftp下载文件,但是ftp服务拒绝了。ftp服务器的防火墙不让你链接ftp服务器如果是阿里云什么的,有安全组什么的。

java 生产者消费者 线程优先级问题

你判断的时候只要有就可以取出来,不要判断是max5的时候才能取,你再改改判断条件呗只要大于0就可以取,写写看吧。

RxJava怎么实现多个线程同时执行,怎么实现retryWhen

在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题,Java实现线程同步的方法很多,具体如下。(1)synchronized关键字 在Java中内置了语言级的同步原语synchronized关键字,其在多线程条件下实现了对共享资源的同步访问。根据synchronized关键字修饰的对象不同可以分为以下几种情况。 *synchronized关键字同步方法 public synchronized void method(){ //do something } 注意: 如果使用synchronized关键字同步方法,很容易误认为同步关键字锁住了它所包围的代码。但是实际情况却不是这样,同步加锁的是对象而并非代码。因此。如果在一个类中有一个同步方法,该方法是可以被两个不同的线程同时执行的,只要每个线程自己创建一个该类的实例即可。 示例代码:package newthread;public class TestSync { public static void main(String[] args) { MyThread1 my1=new MyThread1(1); MyThread1 my2=new MyThread1(3); my1.start(); my2.start(); }}class MyThread1 extends Thread{ private int val; public MyThread1(int v){ val=v; } public synchronized void printVal(int v){ for(int i=0;i<100;i++){ System.out.print(v); } } public void run(){ printVal(val); }} 执行代码结果是1和3交叉输出的,即1和3两个线程在并发执行printVal方法,并没有实现同步功能。原因在于synchronized关键字锁定的是对象而并非代码块,如果需要实现真正的同步,必须同步一个全局对象或者对类进行同步。synchronized关键字同步类的格式如下:synchronized(MyThread.class){}改进代码package newthread;public class TestSync_2 { public static void main(String[] args) { MyThread_2 my1=new MyThread_2(1); my1.start(); MyThread_2 my2=new MyThread_2(2); my2.start(); }} class MyThread_2 extends Thread{ private int val; public MyThread_2(int v){ val=v; } public void printVal(int v){ synchronized(MyThread_2.class){ for(int i=0;i<100;i++){ System.out.print(v); } } } public void run(){ printVal(val); } }在上面的实例中,printVal()方法的功能不再对个别的类实行同步,而是对当前类进行同步。对于MyThread而言,它只有惟一的类定义,两个线程在相同的锁上同步,因此在同一时刻只有一个线程可以执行printVal()方法。至于输出结果的两种可能,则是由于Java线程调度的抢占实现模式所决定的。 *synchronized关键字同步公共的静态成员变量 在上面的示例中,通过对当前类进行加锁,达到了线程同步的效果,但是基于线程同步的一般原理是应该尽量减小同步的粒度以达到更高的性能。其实针对上文中的示例,也可以通过对公共对象加锁,即添加一个静态成员变量来实现,两种方法都通过同步该对象而达到线程安全。示例代码如下:package newthread;public class TestSync_3 { public static void main(String[] args) { MyThread_3 my1=new MyThread_3(2); my1.start(); MyThread_3 my2=new MyThread_3(5); my2.start(); }}class MyThread_3 extends Thread{ private int val; private static Object lock=new Object(); public MyThread_3(int v){ val=v; } public void printVal(int v){ synchronized(lock){ for(int i=0;i<100;i++){ System.out.print(v); } } } public void run(){ printVal(val); }}注意:为了能够提高程序的性能,针对示例代码中对于对象的选取做一个简单的介绍:基于JVM的优化机制,由于String类型的对象是不可变的,因此当用户使用“”的形式引用字符串时,如果JVM发现内存已经有一个这样的对象,那么它就使用该对象而不再生成一个新的String对象,这样是为了减小内存的使用;而零长度的byte数组对象创建起来将比任何对象要实用,生成零长度的byte[]对象只需要3条操作码,而Object lock=new Object()则需要7行操作码。 *synchronized关键字同步游离块 synchronized{ //do something } synchronized关键字同步代码块和上文中所提到的synchronized关键字同步公共的静态成员变量类似,都是为了降低同步粒度避免对整个类进行同步而极大降低了程序的性能 *synchronized关键字同步静态方法 public synchronized static void methodAAA(){ //do something } public void methodBBB(){ synchronized(Test.class){ //do something } } synchronized关键字同步静态方法与synchronized关键字同步类实现的效果相同,唯一不同的是获得的锁对象不同,当同一个object对象访问methodAAA()和methodBBB()时,同步静态方法获得的锁就是该object类,而同步类方法获得的对象锁则是object对象所属的那个类(2)Metux互斥体的设计和使用 Metux称为互斥体,同样广泛应用于多线程编程中。。其中以Doug Lea教授编写的concurrent工具包中实现的Mutex最为典型,本文将以此为例,对多线程编程中互斥体的设计和使用做简单介绍。在Doug Lea的concurrent工具包中,Mutex实现了Sync借口,该接口是concurrent工具包中所有锁(lock)、门(gate)、和条件变量(condition)的公共接口,SyncD的实现类主要有Metux、Semaphore及其子类、Latch、CountDown和ReentrantLock等。这也体现了面向对象抽象编程的思想,使开发者可以在不改变代码或者改变少量代码的情况下,选择使用Sync的不同实现。Sync接口的定义如下:package newthread;public interface Sync { //获取许可 public void acquire() throws InterruptedException; //尝试获取许可 public boolean attempt(long msecs)throws InterruptedException; //释放许可 public void realse();}通过使用Sync接口可以替代synchronized关键字,并提供更加灵活的同步控制,但是并不是说concurrent工具包是独立于synchronized的技术,其实concurrent工具包也是在synchronized的基础上搭建的。区别在于synchronized关键字仅在方法内或者代码块内有效,而使用Sync却可以跨越方法甚至通过在对象之间传递,跨越对象进行同步。这是Sync及concurrent工具包比直接使用synchronized更加强大的地方。 需要注意的是Sync中的acquire()和attempt()方法都会抛出InterruptedException异常,因此在使用Sync及其子类时,调用这些方法一定要捕获InterruptedException。而release()方法并不会抛出InterruptedException异常,这是因为在acquire()和attemp()方法中都有可能会调用wait()方法等待其他线程释放锁。因此,如果对一个并没有acquire()方法的线程调用release()方法不会存在什么问题。而由于release()方法不会抛出InterruptedException,因此必须在catch或finally子句中调用release()方法以保证获得的锁能够被正确释放。示例代码如下:package newthread;public class TestSync_4 { Sync gate; public void test(){ try { gate.acquire(); try{ //do something }finally{ gate.realse(); } } catch (InterruptedException ex) { } }}Mutex是一个非重入的互斥锁。广泛应用于需要跨越方法的before or after类型的同步环境中。下面是一个Doug Lea的concurrent工具包中的Mutex的实现,代码如下:package newthread;import com.sun.corba.se.impl.orbutil.concurrent.Sync;public class TestMutex implements Sync{ protected boolean flg=false; public void acquire() throws InterruptedException { if(Thread.interrupted()) throw new InterruptedException; synchronized(this){ try{ while(flg) wait(); flg=true; }catch(InterruptedException ex){ notify(); throw ex; } } } public boolean attempt(long msecs) throws InterruptedException { if(Thread.interrupted()) throw new InterruptedException; synchronized(this){ if(!flg){ flg=true; return true; }else if(msecs<=0){ return false; }else{ long waitTime=msecs; long start=System.currentTimeMillis(); try{ for(;;){ wait(waitTime); if(!flg){ flg=true; return true; }else{ waitTime=msecs-(System.currentTimeMillis()-start); if(waitTime<=0) return false; } } }catch(InterruptedException ex){ notify(); throw ex; } } } } public void release() { flg=false; notify(); } }

Java多线程之阻塞I/O如何中断

阻塞的I/O线程在关闭线程时并不会被打断,需要关闭资源才能打断。1.执行socketInput.close();阻塞可中断。2.执行System.in.close();阻塞没有中断。复制代码package Thread.Interrupting;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class CloseResource {public static void main(String[] args) throws Exception {//堵塞的I/O线程不会被打断,需要关闭资源才能打断ExecutorService exec = Executors.newCachedThreadPool();ServerSocket server = new ServerSocket(8080);InputStream socketInput = new Socket("localhost", 8080).getInputStream();exec.execute(new IOBlocked(socketInput));exec.execute(new IOBlocked(System.in));TimeUnit.MILLISECONDS.sleep(100);System.out.println("Shutting down all threads");exec.shutdownNow();TimeUnit.SECONDS.sleep(1);System.out.println("Closing " + socketInput.getClass().getName());socketInput.close();TimeUnit.SECONDS.sleep(1);System.out.println("Close " + System.in.getClass().getName());System.in.close();}}复制代码被阻塞的nio通道在关闭线程后会自动响应中断阻塞,不需要关闭底层资源。复制代码package Thread.Interrupting;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.AsynchronousCloseException;import java.nio.channels.ClosedByInterruptException;import java.nio.channels.SocketChannel;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;class NIOBlocked implements Runnable {private final SocketChannel sc;public NIOBlocked(SocketChannel sc) {this.sc = sc;}@Overridepublic void run() {try {System.out.println("Waiting for read() in " + this);sc.read(ByteBuffer.allocate(1));} catch (ClosedByInterruptException e) {System.out.println("ClosedByInterruptException");} catch (AsynchronousCloseException e) {System.out.println("AsynchronousCloseException");} catch (IOException e) {throw new RuntimeException(e);}System.out.println("Exiting NIOBlocked.run() " + this);}}public class NIOInterruption {public static void main(String[] args) throws Exception {//被阻塞的nio通道会自动地响应中断ExecutorService exec = Executors.newCachedThreadPool();ServerSocket server = new ServerSocket(8080);InetSocketAddress isa = new InetSocketAddress("localhost", 8080);SocketChannel sc1 = SocketChannel.open(isa);SocketChannel sc2 = SocketChannel.open(isa);Future<?> f = exec.submit(new NIOBlocked(sc1));exec.execute(new NIOBlocked(sc2));exec.shutdown();TimeUnit.SECONDS.sleep(1);f.cancel(true);TimeUnit.SECONDS.sleep(1);sc2.close();}}
 首页 上一页  87 88 89 90 91 92 93 94 95 96 97  下一页  尾页