1.ava的端源Classpath是什么?
2.ä¸å¡å端åå端çåºå«ï¼
3.ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
4.IavaIava平台--开发工具
ava的Classpath是什么?
Java 的 Classpath 是一个环境变量,用于指定 Java 虚拟机(JVM)在运行程序时查找类文件的码a码路径。类文件是端源经过编译后的 .class 文件,而非源代码文件。码a码当开发者运行 Java 程序时,端源JVM 会先在 Classpath 指定的码a码geowebcache源码解析路径中查找类文件。如果 Classpath 中包含多个路径,端源JVM 将按照路径的码a码顺序进行查找。
在上述例子中,端源有一个名为 `MyClass` 的码a码类,包含了两个版本:版本 1 和版本 2。端源这两个版本的码a码类文件被分别放置在不同的目录中,即 `c:\mylib\com\shinechina\MyClass.class` 和 `d:\mylib\com\shinechina\MyClass.class`。端源在运行程序时,码a码开发者需要在命令行中使用 `javac` 命令将源代码编译为类文件。端源
当运行程序时,开发者需要指定 `MyClass` 类所在的目录,即 `java com.shinechina.MyClass`。JVM 会首先检查 Classpath 中的路径是否包含运行程序所需的类文件。如果 Classpath 中包含多个路径,JVM 将按照路径的顺序进行查找。在本例中,Classpath 包含 `c:\mylib` 和 `d:\mylib` 两个路径,因此 JVM 将在这些路径中查找 `MyClass` 类文件。
Classpath 的设置对于 Java 开发者来说至关重要,它决定了程序在运行时能够访问到哪些类文件。如果 Classpath 没有正确设置,或者包含的路径中没有所需的类文件,程序就无法正常运行。因此,在开发和部署 Java 应用程序时,确保 Classpath 的正确性非常重要。
ä¸å¡å端åå端çåºå«ï¼
å端å端ä»ä¹åºå«
ä¸ãå端å³ç½ç«åå°é¨åï¼æ¢å å«äºé¡µé¢è®¾è®¡ï¼åå å«äºé¡µé¢å®ç°ï¼ä¸»è¦æ¯æè¿è¡å¨PC端ï¼ç§»å¨ç«¯çæµè§å¨ä¸å±ç°ç»ç¨æ·æµè§çç½é¡µã
âå端âæ¯ç½ç«ä¸ç¨æ·ç´æ¥äº¤äºçé¨åï¼ä»åä½å°å¸å±åå°å¾ç大å°ï¼ä»¥åä¸æèåãå±ç¤ºæ åå¨æææççï¼è¿äºè§è§ä¸å¯è§çææå 容ï¼é½æ¯ç±æµè§å¨è§£æãå¤çã渲æç¸å ³HTMLãCSSãJavaScriptååç°åºæ¥çç»æã
ç®åæ¥è¯´ï¼ä½ å¨ä½¿ç¨ç½ç»è¿ç¨ä¸çå°çææç½ç«ä¸çå±ç¤ºé¡µé¢åä¾ä½ æä½ç使ç¨é¡µé¢é½å¯ä»¥ç§°ä¹ä¸ºå端ã
äºãITè¡ä¸ä¸çå端æ´å¤çæ¯ä¸æ°æ®åºè¿è¡äº¤äºä»¥å¤çç¸åºçä¸å¡é»è¾ãéè¦èèçæ¯å¦ä½å®ç°ç¸å ³åè½åä¿¡æ¯æ°æ®çååãå¹³å°ç稳å®ä¸æ§è½ççï¼ç®å说就æ¯ä¸ºå端å±ç¤ºçä¸å¡é»è¾åè½åå¤çã
å端æ¯ç¨æ·çä¸è§çä¸è¥¿ï¼æ¶åå°çé»è¾ä»£ç ä¹æ¯å端人åè¦å¤å¾å¤ã
å端å¼ååå端å¼åæä»ä¹åºå«?
å±ç¤ºæ¹å¼ä¸åï¼æç¨ææ¯ä¸åãå端å¼åç¨å°çææ¯å æ¬ä½ä¸éäºhtmlãcssãjavascriptãjqueryãBootstrapãNode.jsãAngularJsçææ¯ãå端å¼å以java为ä¾ä¸»è¦ç¨å°çæ¯å æ¬ä½ä¸éäºStrutsspringspringmvcHibernateHttpåè®®ServletTomcatæå¡å¨çææ¯ã
å端å¼åæ¯å建Web页é¢æappçå端çé¢åç°ç»ç¨æ·çè¿ç¨ãå端å¼åéè¿HTMLï¼CSSåJavaScript以åè¡çåºæ¥çåç§ææ¯ãæ¡æ¶ã解å³æ¹æ¡ï¼æ¥å®ç°äºèç½äº§åçç¨æ·çé¢äº¤äºã
å¨äºèç½çæ¼åè¿ç¨ä¸ï¼ç½é¡µå¶ä½æ¯Web1.0æ¶ä»£ç产ç©ï¼æ©æç½ç«ä¸»è¦å 容é½æ¯éæï¼ä»¥å¾çåæå为主ï¼ç¨æ·ä½¿ç¨ç½ç«çè¡ä¸ºä¹ä»¥æµè§ä¸ºä¸»ã
éçäºèç½ææ¯çåå±åHTMLãCSS3çåºç¨ï¼ç°ä»£ç½é¡µæ´å ç¾è§ï¼äº¤äºæææ¾èï¼åè½æ´å 强大ã
å端å¼ååå端å¼åçåºå«ï¼å±ç¤ºæ¹å¼ï¼Webå端å¼å主è¦åçæ¯ååç¨æ·çå¾è§çé¨åãå端å¼å主è¦åçæ¯é»è¾åè½ç模åï¼æ¯ç¨æ·ä¸å¯è§çã
ç¥è¯ç»æï¼Webå端å¼åæ¶åå°çç¥è¯ä¸»è¦æHtmlãCSSãavaScriptãAndroidå¼åãiOSå¼åãåç§å°ç¨åºå¼åææ¯çãWebå端代ç 主è¦å¨å®¢æ·ç«¯è¿è¡ï¼å端å¼å以Java为ä¾ï¼ä¸»è¦ç¨å°çæ¯StrutssprispringmvcHibernateHttpåè®®ServletTomcatæå¡å¨çææ¯ï¼é常éè¦æ ¹æ®ä¸å¡åºæ¯è¿è¡ä¸åè¯è¨çéæ©ãWebå端代ç 主è¦å¨æå¡ç«¯ï¼æå°æºæ¿æå¡å¨çï¼è¿è¡ã
å·¥ä½èè´£ï¼Webå端工ç¨å¸çå·¥ä½è责主è¦æ以ä¸ä¸å¤§é¨åï¼ãWebå端å¼åãï¼PC端å¼åä»»å¡ãã移å¨ç«¯å¼åãï¼å æ¬Androidå¼åãiOSå¼åååç§å°ç¨åºå¼åãã大æ°æ®åç°ç«¯å¼åãï¼ä¸»è¦æ¯åºäºå·²æçå¹³å°å®ææç»åæç»æçåç°ï¼åç°æ¹å¼é常ä¹æå¤ç§éæ©ï¼æ¯å¦å¤§å±å±ç¤ºçã
å端工ç¨å¸ç主è¦èè´£ä¹éä¸å¨ä¸å¤§é¨åï¼ãå¹³å°è®¾è®¡ãï¼ä¸»è¦æ¯æ建å端çæ¯ææå¡å®¹å¨ããæ¥å£è®¾è®¡ãï¼ä¸»è¦é对äºä¸åè¡ä¸è¿è¡ç¸åºçåè½æ¥å£è®¾è®¡ï¼é常ä¸ä¸ªå¹³å°æå¤å¥æ¥å£ï¼å°±åå«æ导èªå¹³å°è®¾ææ°ç¨ååç¨ä¸¤å¥æ¥å£ä¸æ ·ããåè½å®ç°ãï¼å®æå ·ä½çä¸å¡é»è¾å®ç°ã
å端å¼ååå端å¼åæä»ä¹åºå«å端å¼åä¸å端å¼åçåºå«ï¼
1ãå端å¼å主è¦åçæ¯ç¨æ·æè½çå°çå端å±ç¤ºçé¢ï¼å端å¼å主è¦åçæ¯é»è¾åè½ç模åï¼æ¯ç¨æ·ä¸å¯è§çã
2ãå端å¼å人åéè¦ç²¾éJSï¼è½çç»åºç¨JQueryï¼æCSSï¼è½çç»è¿ç¨è¿äºç¥è¯ï¼è¿è¡äº¤äºææçå¼åã
1ãWebå端:å端ææ¯å æ¬4个é¨å:å端ç¾å·¥ãæµè§å¨å ¼å®¹ãCSSãHTML"ä¼ ç»"ææ¯ä¸AdobeAIRãGoogleGears,以åæ¦å¿µæ§è¾å¼ºç交äºå¼è®¾è®¡,èºæ¯æ§è¾å¼ºçè§è§è®¾è®¡çã
2ãWebå端ï¼å端æ´å¤çæ¯ä¸æ°æ®åºè¿è¡äº¤äºä»¥å¤çç¸åºçä¸å¡é»è¾ãéè¦èèçæ¯å¦ä½å®ç°åè½ãæ°æ®çååãå¹³å°ç稳å®æ§ä¸æ§è½çã
ç½é¡µè®¾è®¡å端åå端çåºå«ï¼è¶è¯¦ç»è¶å¥½ã详ç»ç解éä¸ä¸webåå端çåºå«
1ã
åå°ï¼åç°ç»ç¨æ·çè§è§ååºæ¬çæä½ã
åå°ï¼ç¨æ·æµè§ç½é¡µæ¶ï¼æ们çä¸è§çåå°æ°æ®è·å¨ãåå°å æ¬å端ãå端ã
å端ï¼å¯¹åºæ们åçhtmlãcssãjavascriptçç½é¡µè¯è¨ä½ç¨å¨å端ç½é¡µã
å端ï¼å¯¹åºjspãjavaBeanãdaoå±ãactionå±åserviceå±çä¸å¡é»è¾ä»£ç ãï¼å æ¬æ°æ®åºï¼
为ä»ä¹jspæ¯å端å¢ï¼ä¸»è¦æ¯jspçè¿è¡åçæ¯å¨tomcatæå¡å¨è¿è¡çã
2ã
(1)javawebæ¯javaå¼åä¸çä¸ä¸ªæ¹åjavaææå®åçï¼æwebçï¼æåµå ¥å¼ççãjavawebå°±æ¯ææwebæ¹åçï¼javawebå两åï¼ä¸åæ¯æå¡å¨ç«¯å«å端ï¼å¦ä¸åå«å端ï¼ä¹å°±æ¯webå端ãå端就æ¯ç¨æ·è½çå°çé¨åï¼æ¯å¦æ·å®ç½ï¼qq空é´ï¼ç½é¡µä¸ä½ è½çå°çé½æ¯webå端åçãå端åçå°±æ¯ä¸ºå端çå±ç¤ºä¸å¡é»è¾åè½åå¤çã
(2)javawebå æ¬äºjspï¼servelt以åä¸äºæ¡æ¶æ¯å¦springï¼structs以åä¸æ°æ®åºäº¤äºçç¥è¯ï¼å½ç¶ä¹æ¶åå°äºhtmlï¼cssçå端ææ¯ï¼ä½æ¯æ´ä¾§éäºå端çå¼åãwebå端主è¦æ¯htmlï¼cssï¼javascriptä¹ç±»çææ¯ã
jawebæ¯javaeeçä¸ä¸ªæ¹åï¼Javawebï¼ç±å端ãJava代ç ãåæ°æ®åºä¸ä¸ªå¤§æ¹é¢ç»æï¼å端åªæ¯å ¶ä¸ä¹ä¸ã
(3)å¨æ们çæºåä¸çå°ççé¢ï¼å®è£ çç¨åºï¼ç»ç¨æ·ççï¼æä½çå°±æ¯å端ï¼èä½ çä¸å°çï¼å¸®ä½ ä¿åç½ç»æ¸¸ææ°æ®ï¼ä¿ååºç¨æ°æ®ï¼å¤çæ°æ®çå°±æ¯å端ï¼æå¡å¨ï¼ãæ¯å¦è¯´ï¼æ们å¨ç¨çç¥ä¹å°±æ¯å端ï¼èä¿åè¿ä¸ªé®é¢ï¼è¿ææè¿ä¸ªé®é¢æ¨éç»ä½ çå°±æ¯å端ã
äºãå®ä¹ä¸å
ä¸è¬æ¥è¯´ï¼æ们å°ç½ç«å为å端åå端ãå端主è¦è´è´£é¡µé¢çå±ç¤ºï¼å端åæ¯ä¸å¡é»è¾çå®ç°ã
1ãWebå端:
顾åæä¹æ¯æ¥åWebçå端çãè¿éæ说çå端æ³æWebå端ï¼ä¹å°±æ¯å¨Webåºç¨ä¸ç¨æ·å¯ä»¥çå¾è§ç¢°å¾ççä¸è¥¿ãå æ¬Web页é¢çç»æãWebçå¤è§è§è§è¡¨ç°ä»¥åWebå±é¢ç交äºå®ç°ã
2ãWebå端ï¼
å端æ´å¤çæ¯ä¸æ°æ®åºè¿è¡äº¤äºä»¥å¤çç¸åºçä¸å¡é»è¾ãéè¦èèçæ¯å¦ä½å®ç°åè½ãæ°æ®çååãå¹³å°ç稳å®æ§ä¸æ§è½çã
ä¸ãéè¦ææ¡çææ¯ä¸å
1ãWebå端ï¼
ç²¾éJSï¼è½çç»åºç¨JQueryï¼æCSSï¼è½çç»è¿ç¨è¿äºç¥è¯ï¼è¿è¡äº¤äºææçå¼åã
(1)ç²¾éHTMLï¼è½å¤ä¹¦åè¯ä¹åçï¼ç»ææ¸ æ°ï¼æç»´æ¤çHTMLç»æï¼
(2)ç²¾éCSSï¼è½å¤è¿åè§è§è®¾è®¡ï¼å¹¶å ¼å®¹ä¸çæ¿è®¤ç主æµæµè§å¨ï¼
(3)çæJavaScriptï¼äºè§£ECMAScriptåºç¡å 容ï¼ææ¡1-2ç§jsæ¡æ¶ï¼å¦JQueryï¼
(4)对常è§çæµè§å¨å ¼å®¹é®é¢ææ¸ æ°çç解ï¼å¹¶æå¯é ç解å³æ¹æ¡ï¼
(5)对æ§è½æä¸å®çè¦æ±ï¼äºè§£yahooçæ§è½ä¼å建议ï¼å¹¶å¯ä»¥å¨é¡¹ç®ä¸ææå®æ½ã
2ãWebå端ï¼
å端å¼å人åï¼ä¼åJava代ç ï¼ä¼åSQLè¯å¥ï¼è½åç®åçæ°æ®åºè®¾è®¡ï¼ä¼SpringåiBatisï¼æä¸äºè®¾è®¡æ¨¡å¼çã
(1)ç²¾éjspï¼servletï¼javabeanï¼JMSï¼EJBï¼Jdbcï¼Flexå¼åï¼æè 对ç¸å ³çå·¥å ·ãç±»åºä»¥åæ¡æ¶é常çæï¼å¦Velocityï¼Springï¼Hibernateï¼iBatisï¼OSGIçï¼å¯¹Webå¼åç模å¼æè¾æ·±çç解ï¼
(2)ç»ä½¿ç¨oracleãsqlserverãmysqlç常ç¨çæ°æ®åºç³»ç»ï¼å¯¹æ°æ®åºæè¾å¼ºç设计è½åï¼
(3)çæmaven项ç®é 置管çå·¥å ·ï¼çætomcatãjbossçåºç¨æå¡å¨ï¼åæ¶å¯¹å¨é«å¹¶åå¤çæ åµä¸çè´è½½è°ä¼æç¸å ³ç»éªè ä¼å èèï¼
(4)ç²¾éé¢å对象åæå设计ææ¯ï¼å æ¬è®¾è®¡æ¨¡å¼ãUML建模çï¼
(5)çæç½ç»ç¼ç¨ï¼å ·æ设计åå¼å对å¤APIæ¥å£ç»éªåè½åï¼åæ¶å ·å¤è·¨å¹³å°çAPIè§è设计以åAPIé«æè°ç¨è®¾è®¡è½åã
åãwebå端åå端æ¯æä¹è¿æ¥çï¼
1ãwebæå¡å¨ï¼apacheãtomcatçï¼ï¼ç½ç»åè®®ï¼æè phpçé½å¯è½ï¼ä½javawebå¯ä»¥ç¡®å®å端就æ¯javaï¼webåç«¯å ¶å®é½ä¸æ ·ã
å端åJavawebçåºå«æ´å¤çå¨äºä¸ä¸ªä¸»è¦è´è´£å端ç设计åææï¼èJavawebæ´ä¸æ³¨äºå端çå 容ã
3ãåå¼å§ä»äºwebå¼åæ¶ï¼é¦å è¦éåå¦ä¹ æ¹åï¼çæ¯æ³ä»äºå端é¨åè¿æ¯å端ç¨åºé¨åãå½ç¶å¨å·¥ä½çåæï¼å°±ä¸ä¼åçé£ä¹ç»è´äºãåå端å°åæä¹ä¼æä¸äºå端çææ¯ï¼åä¹ï¼å端ä¹æ¯ã
å ãå¦ä¹ Webå端å¼åé½éè¦ææ¡åªäºæè½ï¼
1ãå¦ä¹ htmlãè¿ä¸ªæ¯æç®åç,ä¹æ¯æåºç¡ç.è¦çç»ææ¡divãformtableãulliãpãspanãfontè¿äºæ ç¾,è¿äºé½æ¯æ常ç¨ç,ç¹å«æ¯divåtable,divç¨äºå¸å±ãtableä¹å¯ä»¥ç¨äºå¸å±,ä½æ¯ä¸çµæ´»,åºæ¬tableæ¯ç¨æ¥åæ°æ®æ交éã
2ãå¦ä¹ cssãè¿é说çcssä¸å æ¬css3,ä¸è¬æ们çå°webå端å¼åå·¥ç¨å¸çè¦æ±éé¢,æä¸ä¸ªä¼ä½¿ç¨css+htmlæè css+divæ¥è¿è¡çé¢å¸å±,æ以cssæ¯ç¨äºè¾ å©htmlæ¥å¸å±åå±ç¤ºç,æ们称ä¹ä¸ºâcssæ ·å¼â,为ä»ä¹ä¼è¯´css+divå¢?å 为æä¸é¢è¯´äºdivå°±æ¯html主è¦ç¨äºå¸å±çä¸è¥¿,æ以divå°±æ¯æ ¸å¿ææ¡çä¸è¥¿!é£ä¹cssè¯å®å¿ é¡»è¦é ådivæ¥ä½¿ç¨æ好.cssè¦çç»ææ¡floatãpositionãwidthãheightï¼ä»¥å对äºçæ大æå°ãä¼ä½¿ç¨ç¾åç¾ãoverflowãmarginãpaddingçç,è¿äºé½æ¯è·å¸å±æå ³ç³»çæ ·å¼,ä¸ç¹è¦ææ¡ã
3ãå¦ä¹ jsãå¯è½å两个大家è§å¾è¿è¿çå»,çå°jså°±å»ç¼äº,å ¶å®å§,jså ¥é¨å¾ç®åç,ä¸éè¦ä¼å¾å¤ä¸è¥¿ç,åªè¦ä¼æ ¹æ®æ个idãæè nameæ¿å°ç½é¡µdomæè æ ·å¼ãæè å¼,ç¶åä¼ç»æ个idæè nameçå ç´ æ ç¾èµå¼ãæè 追å æ°æ®ã追html,è¿ä¸ªæ¯è·æ°æ®æå ³ç³»çæä½,ç¶åæ°æ®é»è¾å¤æ,æææ¹é¢ç,æ éå°±æ¯è·³è½¬ãå¼¹æ¡ãéèä»ä¹ç,æè¿äºå ¨é¨ç»åå ¶ä»å°±æ¯å®é ç¨éäº,代ç ä¸ç¹é½ä¸é¾,ä¼äºè¿äºåºç¡js,å ¶ä»çç´æ¥ç¾åº¦å°±å¥½äº.ç¶åçå¤äº,ç¨å¤äº,å°±ä»ä¹é½ä¸æ¯é®é¢äºã
4ãå¦ä¹ jqueryãjqueryæ¯ç¸å½äºæjså°è£ äºä¸å¥çä¸ä¸ªjsæ件,ç®çå°±æ¯æä½èµ·æ¥æ´æ¹ä¾¿,代ç åçæ´å°,jqueryå ¥é¨ä¹å¾ç®å,é£äºæ¯å ¥é¨éè¦å¦çåjsä¸æ ·,åªæ¯æ¢æäºjqç代ç .å ¶ä»çä¸æ ·ç¾åº¦å°±å¤äºã
5ãæ好ä¼ç¹åå°è¯è¨,æ¯å¦javaãphp,为ä»ä¹å¢?å 为åå°çé¢çæ°æ®é½æ¯ä»åå°æ¥ç,å¦æä¼ç¹åå°ä»£ç ,å°±ç¥éæä¹è·åå°äº¤äºæ°æ®æ¯æ好ç,è¿æ ·è约æ¶é´,ä¹å¯ä»¥è®©å端代ç æ´è§è.ä¸ç¶å¯è½å ä¸ºä½ çåæ³åå端ç»æ¥çæ°æ®ä¸è½ç»åä¸,é£ä¹å端代ç åå¾éæ°å,é£å°±æ´å 麻ç¦äºã
6ãå¦ä¹ css3+html5,å¯è½è¿ä¸ªå¯¹äºæ´æ¥æçæ°äººæ¥è¯´æç¹å°é¾ï¼éè¦è¾å¼ºç代ç ç¥è¯ä¸ç»éªï¼ä½æ¯å¦æä½ ä»¬æ¯åå¤ä¸é¨æå端,é£ä¹æ好è¿æ¯å¦ä¸ä¸ï¼è¿æ ·å¯¹äºå°æ¥çå·¥ä½ä¼ææ´å¤§ç帮å©ã
ä¸ãä»äºJavaå端å¼åé½éè¦ææ¡åªäºæè½ï¼
对äºåå¦Java并ä¸æå¿äºå端å¼åçåå¦æ¥è¯´ï¼éè¦éç¹å ³æ³¨ä»¥ä¸å 个é¨åï¼
1ãåºç¡ï¼æ¯å¦è®¡ç®æºç³»ç»ãç®æ³ãç¼è¯åççç
2ãWebå¼åï¼ä¸»è¦æ¯Webå¼åç¸å ³çå 容ï¼å æ¬HTML/CSS/jsï¼å端页é¢ï¼ãServlet/JSPï¼J2EEï¼ä»¥åMySQLï¼æ°æ®åºï¼ç¸å ³çç¥è¯ãå®ä»¬çå¦ä¹ 顺åºåºè¯¥æ¯ä»åå°åï¼å æ¤æå å¦ä¹ çåºè¯¥æ¯HTML/CSS/JSï¼å端页é¢ï¼ãè¿æä¸äºå段æ¡æ¶æ¯å¦easyui,è¿æjs,jqueryçææ¯ã
3ãJ2EEï¼ä½ éè¦å¦ä¹ çæ¯Servlet/JSPï¼J2EEï¼é¨åï¼è¿é¨åæ¯Javaå端å¼åå¿ é¡»é常精éçé¨åï¼å æ¤è¿é¨åæ¯è¿ä¸é¨åä¸æéè¦è±ç²¾åçãå ³äºServlet/Jspé¨åè§é¢çéæ©ï¼ä¸çæ¯è¾è®¤å¯é©¬å£«å µçè§é¢ã4ãæ°æ®åºï¼ä½ éè¦å¦ä¼ä½¿ç¨æ°æ®åºï¼mysqlæ¯ä¸ªä¸éçå ¥é¨éæ©ï¼èä¸Javaé¢åé主æµçå ³ç³»åæ°æ®åºå°±æ¯mysqlãè¿é¨åä¸è¬å¨ä½ å¦ä¹ Servlet/Jspçæ¶åï¼å°±ä¼æ¥è§¦å°çï¼å ¶ä¸çJDBCé¨åå°±æ¯æ°æ®åºç¸å ³çé¨åãä½ ä¸ä» è¦å¦ä¼ä½¿ç¨JDBCæä½æ°æ®åºï¼è¿è¦å¦ä¼ä½¿ç¨æ°æ®åºå®¢æ·ç«¯å·¥å ·ï¼æ¯å¦navicatï¼sqlyogï¼äºéä¸å³å¯ã
5ãå¼åæ¡æ¶ï¼ç®åæ¯è¾ä¸»æµçæ¯SSMæ¡æ¶ï¼å³springãspringmvcãmybatisãä½ éè¦å¦ä¼è¿ä¸ä¸ªæ¡æ¶çæ建ï¼å¹¶ç¨å®ä»¬ååºä¸ä¸ªç®åçå¢å æ¹æ¥çWeb项ç®ãä½ å¯ä»¥ä¸ç解é£äºé ç½®é½æ¯ä»ä¹å«ä¹ï¼ä»¥å为ä»ä¹è¦è¿ä¹åï¼è¿äºççåé¢ä½ å»äºè§£ãä½ä½ ä¸å®è¦å¯ä»¥å¿«éçå©ç¨å®ä»¬ä¸ä¸ªæ建åºä¸ä¸ªWebæ¡æ¶ï¼ä½ å¨æ建SSMçè¿ç¨ä¸ï¼å¯è½ä¼ç»å¸¸æ¥è§¦å°ä¸ä¸ªå«mavençå·¥å ·ãè¿ä¸ªå·¥å ·ä¹æ¯ä½ 以åå·¥ä½å½ä¸å ä¹æ¯å¿ é¡»è¦ä½¿ç¨çå·¥å ·ï¼æä»¥ä½ å¨æ建SSMçè¿ç¨ä¸ï¼ä¹å¯ä»¥é¡ºä¾¿äºè§£ä¸ä¸mavençç¥è¯ãå¨ä½ ç®åè¿ä¸ªé¶æ®µï¼ä½ åªéè¦å¨ç½ç»ä¸äºè§£ä¸ä¸mavenåºæ¬ç使ç¨æ¹æ³å³å¯ï¼ä¸äºé«ç«¯çç¨æ³éçä½ å·¥ä½ç»éªçå¢å ï¼ä¼éæ¸æ¥è§¦å°çã
6ãä½ éè¦å»çä¸äºJDKä¸çç±»çæºç ï¼ä¹å æ¬ä½ æ使ç¨çæ¡æ¶çæºç ãè¿äºæºç è½çæçåææ¯ï¼ä½ å¿ é¡»å¯¹è®¾è®¡æ¨¡å¼é常äºè§£ãå¦åçè¯ï¼ä½ çæºç çè¿ç¨ä¸ï¼æ°¸è¿ä¼æè¿æ ·é£æ ·ççé®ï¼è¿æ®µä»£ç 为ä»ä¹è¦è¿ä¹åï¼ä¸ºä»ä¹è¦å®ä¹è¿ä¸ªæ¥å£ï¼å®çèµ·æ¥å¥½åå¾å¤ä½ï¼ç±æ¤ä¹å¯ä»¥çåºï¼è¿äºå¦ä¹ çè¿ç¨æ¯ç¯ç¯ç¸æ£çï¼å¦æä½ ä»»ä½ä¸ä¸ªé¶æ®µæä¸æ¥äºï¼é£ä¹ä½ å°±ççè·ä¸ä¸äºï¼æè 说æ¯ä¸æ¥æ ¢æ¥æ¥æ ¢ãæ»èè¨ä¹ï¼è¿ä¸ªé¶æ®µï¼ä½ éè¦åçæ¯æ·±å ¥äºè§£Javaåºå±åJavaç±»åºï¼æ¯å¦å¹¶åé£æ¬ä¹¦å°±æ¯Java并åå java.concurrentçå 容ï¼ï¼ä¹å°±æ¯JVMåJDKçç¸å ³å 容ãèä¸è¿è¦æ´æ·±å ¥çå»äºè§£ä½ æ使ç¨çæ¡æ¶ï¼æ¹å¼æ¯è¾æ¨èçæºç æè çå®æ¹ææ¡£ã
å¸æ对æ¨ææ帮å©ï¼~
ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
的ActiveX
ActiveX的ActiveX起源时,最初只是一个品牌名称,它涵盖了技术不是孤立的,其中大部分是与Internet和Web有一定关联。更重要的是,在ActiveX的整体技术是微软的COM(组件对象模型组件对象模型)的建立。但不要误认为ActiveX是定义了所有包含基于COM的技术。 COM和Microsoft Office和Windows,微软正在做相关的一切,很明显,这些产品是不是ActiveX的家庭成员。
的ActiveX复合文档从微软的技术 - OLE成长起来的。 OLE初始释放,pycharm 如何查看源码但针对复合文档,但在后续版本OLE2进口COM。 COM的的OLE设计师需求的诞生。其基本出发点是做一个软件,通过一个共同的机构提供服务,另一家软件。因此,COM用户OLE2。事实上,COM和复合文档,是没有多大意义的。后来,COM完全无关的复合文档技术开始得到广泛的应用。因此,微软开始“染指”通用平台技术。 COM是不是一个产品,它需要一个商标名称。不幸的是,市场专家们选择了“OLE”作为商号。然后,利用COM技术的OLE标签粘贴。当然,这些技术的绝大多数具有没有关系与化合物笔。微软为了向人们解释:“OLE不仅是指复合文档!”这是一个相当大的量的能量和时间。
所以,在年的春天,微软改变了主意,选择了ActiveX作为一个新的品牌名称。 ActiveX是一个松散定义的基于COM的技术的集合,OLE仍然仅指复合文档。当然,最重要的核心COM。
对象模型完全独立于编程语言,这是一个非常新颖的想法。从C + +和Java对象,我们将能够理解。但所谓的COM对象是什么就是什么呢?为了便于理解,COM可以看出一些种(软件)封装技术,可以看到它作为一个不同的软件的一部分,结合成某种形式的面向对象的,可以交互的过程和一组支持库。 COM对象可以被写入在C + +,Java中,list 转数组 源码和VB语言的任何DLL或文件的不同进程的工作的实施。任何语言编写的客户端使用COM对象,而不关注的对象,和不关心它的DLL,或者到另一个进程来执行。从客户端,没有任何区别。
这样一个共同的处理方法是非常有用的。例如,两个应用程序协调运行的用户,可以合作的一部分,作为COM对象实现(当然,现在可以做的OLE复合文档)之间的相互作用。在浏览器中执行从Web服务器下载的代码,浏览器就可以看到它作为一个COM对象。换句话说,COM技术也是一种打包下载代码的标准方法(ActiveX控件执行此功能)。
甚至是应用程序与本地操作系统交互的方法,您可以使用COM来指定新的API(Windows和Windows NT,多数被定义为一个COM对象)。 COM虽然起源于一个复合文档,但它可以被有效地应用于许多软件问题。
的ActiveX英国
活动平台是微软的世界观。其基本思想是:使用ActiveX控件来建立,包括从组织与用户互动和交易处理监视器,以适应COM的Web服务器,所有的自动。活动平台包括两部分:活动服务器和活动的客户端。
活动服务器的中间层。组件或Active Server Pages,为客户提供业务逻辑和应用处理的地方。 ActiveServer技术的核心NT Server,Microsoft事务服务器,数据管理服务,目录服务,Web服务,以及网络服务。
交易服务器是微软的基于组件的编程模型,结合了传统的TP多个线程生成和数据库监控功能。其他组件的数据管理服务,如主动OLE DB和ODBC访问DB2,甲骨文,SQL Server和其他数据源。目录服务提供目录服务层,java基本类源码使在网络上的远程对象的相互四处搜寻DCOM(分布式COM,分布式COM)。 Inter网服务器为中心的Web服务建立在Web服务器上,应用程序的开发,生成脚本(脚本)的机构。通过中介网络为中心的网络服务,DCOM建立MS-RPC同步,这样一来就能连接的控制。
活跃的客户端是一个跨平台的。微软的技术,即使排斥,但也希望,这项技术是开放的多个操作系统。该计划的具体实施是使用脚本引擎(脚本引擎)。脚本引擎是一个标准的HTML和Java虚拟机(JVM)与微软特色,微软的VBScript司法人员叙用委员会RIPT的构成。组装到微软的IE 3.0和4.0的ActiveX,可以成为活跃的客户端的C / S
从企业用户只使用Windows的Active平台可以提供一个强大的,可扩展的服务器应用程序开发平台的应用程序的一部分。 ActiveServer的TP监视器高端产品这样的场合,使用常见的工具和技术。因此,小型工作组和内联网应用程序将无法超越的Active Server的能力。 ACTI VE的目标平台是一个异构的环境,但由于过度依赖IE,所以你不能开车到客户端。虽然一些非Windows平台上也推出了浏览器,但最好的支持,最新版本的资源管理器或窗口s。
的ActiveX进步
COM扩展初始版本的分布式计算,假设COM对象和它的客户端运行在同一台机器(在同一个进程,而且在不同的进程),DCOM的的ActiveX家庭成员。后来,它可以使用在Windows 中。 COM对象的DCOM客户端交互不能做任何。
客户端使用完全相同的代码可以访问本地和远程对象。然而,很多情况下,客户需要的一些DCOM附件。 DCOM提供分布式的安全保密机制,以提供验证和数据加密。发布于年,是hi3798源码Windows NT 5.0,Kerberos等安全保密协议,追加到DCOM。 DCOM已经能够使用简洁的域名服务,目录服务,搜索其他计算机上的COM对象。 NT 5.0支持更多的的ACTI已经指南。 Active Directory的域名服务和轻量级目录访问协议的基础上。
DCOM的对手,一直是OMG(对象管理组织)的CORBA(公共对象R equest代理体系结构)。它被组装成IONA的Orbix和Visigenic的VisiBroker和其他产品。不久前,另一位技术支持分散的对象 - Java远程方法调用介绍。两个C ORBA,DCOM,可以在多语言写对象之间的通信。 RMI只限于Java实现对象之间的通信。很显然,这是一个制约因素。 RMI是非常简单的使用。 RMI开发人员可以使用Java来设计的协议规范。因此,在语言的功能,可以进行无缝的。
写一个的DCOM服务器处理只有两三个客户端,是相当简单的。然而,建立一个高效的处理数百成千上万的客户端DCOM服务器,相当困难。
为了便于编写可扩展的DCOM服务器,微软事务服务器(MTS)。在支持该交易的同时,MTS自动生成的线索和重复使用的智能对象。 MTS可伸缩的服务器的生产变得相当简单。即使没有事务处理应用程序,使用MTS也不错。事实上,M icrosoft鼓励人们使用VB写的MTS应用程序。这是发展业务服务器的传统做法不同,所有MTS应用程序的COM对象写入一个以上的,而且必须实现的一个DLL。在正常情况下,客户端将无法看到MTS。客户端只是继续生产,使用COM对象可以是。
标准化组件的
基于组件的应用程序的开发,组装电子设备,你可以使用现成的零部件来构建应用程序。桌面使用的ActiveX控件,基于COM的组件。所谓的ActiveX控件,但要符合一定的标准,COM对象进行交互的客户端。
例如,ActiveX控件,必须通过自动化(调度接口)来公开方法。这种标准化的交互功能,可以使用在一个数量不同的情况下,相同的控制。 “幕后”这个标准接口,ActiveX控件是几乎能胜任。现在,许多软件公司都能够控制各种功能。
ActiveX控件的DDL的准备,为此,它必须被加载到一个容器中。 ActiveX控件容器VB原型,此外,也有多种选择的容器。目前,一个非常重要的控制容器是微软的网络浏览器
那些元素的所谓的ActiveX控件,它是要实现的许多方法。他们已经从本地硬盘的机器VB和其他容器。数百KB和MB管制的,似乎没有什么大的区别。但是当你想控制被加载到Web浏览器,它很可能是通过电话线速度非常缓慢。现在,该大小的控制是非常关键的问题。要进行控制,超过一定限度,就会延长下载时间。因此,Microsoft提供了ActiveX控件,只有在绝对必要的功能。
苹果公司和IBM公司推出的OpenDoc,是主要竞争对手的ActiveX控件。的OpenDoc赞助的企业现在已正式宣布暂停经济援助。与微软的企业青睐JavaBeans(J ava的基于组件的结构)的对抗。基本上是捆绑的ActiveX控件和Windows,在二进制机器代码,而JavaBeans是不同的,它是能够执行。这,当然是有代价的。很明显,只要不牺牲便携性,它是不可能完全彻底利用当地的环境。要编写的组件可以从公共互联网上下载的,应优先考虑选择JavaBeans的。
桌面组件市场的持续快速增长。其中大部分是基于ActiveX控件的建立(Java Beans的仍是少数)。服务器组件的标准化落后。在桌面上,VB,PowerBuilder编程环境,容器,Web浏览器是强大的。如果在服务器容器是必须要做的吗?集装箱的服务器组件事务服务器是一个更好的选择。
微软的竞争对手,并尽一切可能防止MTS和NT占领市场。他们是在全速发展标准的服务器组件,其中一个最有前途的是对En?terprise JavaBeans。 JavaBeans的扩张,并定义了一个事务处理服务器接口。 Enterprise JavaBeans的支持者,独立软件供应商,作为一个COM组件来写,但写豆类的服务器组件。
ActiveX构建工具的
推广的ActiveX控件,ActiveX控件的开发工具是与日俱增。由于ActiveX是不依赖于语言,传统的开发工具基本上可以建立的ActiveX控件。最常用的Delphi,宝werBuilder以及Visual Basic中的Visual C + +时,Visual J + +等。基本配置文件
1。 ActiveX控件的3GL开发:①MFC(微软基础类,Microsoft基础类),②ActiveX模板库,ActiveX模板库(ATL),③BaseCtrl的框架等。 MFC是最经典的,使用MFC开发人员不关心的接口,而是将注意力集中在对象的动作。它的缺点是必须存在的控制和执行DLL与容器的尺寸就越大。 ATL可以使用模板来生成代码。也就是说,图书馆和DLL没有一起推出的控制。在ATL中,你需要一些基本的派生类从现有的模板。 AT L也有缺点,即该接口的处理是困难的,该应用程序的必要的接口,必须创建。此外,ATL不支持的类向导,类向导。不幸的是,没有对象描述语言(对象描述语言)和接口定义语言文件,自动同步用户代码向导。 BaseCtrl是一?个简单的类型库。 ATL是非常相似,但没有模板。事实上,由于BaseCtrl太容易了,微软不支持它。在BaseCtrl中,一些无所不能的控制(骨架控制)。该ActiveX的发展模式BaseCtrl提供容易理解的,但与ATL并不简单,是不是和ATL和灵活性。现在看来,ActiveX控件的开发人员,BaseCt RL是“苦”的选择。
2。开发工具
ActiveX控件可以,第一个工具的Microsoft Visual C + +。它可以提供最大程度的控制ActiveX开发。的Visual J + +和ActiveX控件也可以。
Borland公司推出了两款工具(JBuilder和IntraBuilder),也是很可观的。然而,BORL和工具创建ActiveX组件,只有德尔福3.0和C + + Builder中。 Borland的Delphi的A ctiveX发展的特点,被称为内有效。它是任意的Delphi窗口的形式的ActiveX。活跃?在配备了新的控件在Web上。 Delphi控件COM和DCOM的链接。
PowerBuilder的5.0转化为可用于开发的ActiveX客户端/服务器开发工具。作为一个ActiveX控件,可配鲍威的rBuilder数据窗口(PowerBuilder应用开发的核心部分)。为了使PowerBuilder开发人员现在可以使用的PowerScript编程语言,一些熟悉的功能。
拥有最好的工具,使ActivX控件,无疑是微软。例如,使用Visual Basic 5.0中,开发人员可以使用可视化编程环境和本地语言Visual Basic应用开发控制。
5的ActiveX
事实上,Windows和Windows NT,ActiveX技术环境的世界。但无论MICR OSOFT以及如何推进它的操作系统,也不能所有的企业已成为所有Windows。 ,MICROS经常要尽量使COM,DCOM和ActiveX家庭的一部分,也可以使用其他OS。 Macin胡说已经支持ActiveX,这其中也包括对ActiveX控件的支持。 Software AG的这些技术被移植到多种Unix和IBM的OS/。 DEC和HP还打算在自己的系统中使用这些技术,他们也是微软的源代码移植的方式来实现。
COM的Windows 和Windows NT环境为基础的软件已成为一个重要组成部分,但它是未来,有很多不确定因素。例如,微软是作为一个多平台的技术,能够COM开发允许继续存在呢?按企业现有的NT服务器,有必要使DCOM的分布式服务,也可以应用在非微软平台上。为了解决这些问题,它需要相当长的一段时间。基于CORBA的产品,和JAV一个RMI已经成功地运行在多操作系统环境。后期推出的多平台,DCOM,CORBA和RMI领先?的多。
ActiveX控件和JavaBeans竞争力的前景?无论在Web浏览器或运行在另一个地方运行的软件,或在短的,组件的软件(构件的)是一种软件开发的热点。目前,ActiveX控件,暂时处于领先地位,但由于的OpenDoc的运行过程,与微软的企业竞争成为了一个与之抗衡的。用户再也不想看到“独霸天下”,仅仅这一点的,JavaBean将在此的市场竞争中抢占一席之地。
IavaIava平台--开发工具
IavaIDE是艾华公司提供的专为Iava应用程序设计的PC端开发平台。它基于Visual C++ 6.0构建,因此开发者首先需要安装此软件。IavaIDE使用WIN实现了Iava提供给应用程序的所有API,使得开发者可以直接在Visual C++上进行开发和调试,无需额外的中间步骤。这大大提高了开发效率和代码的可移植性。
为了实现从Visual C++到Iava虚拟机的无缝转换,IavaIDE提供了一套脚本工具。这些脚本能够将源代码编译并打包成Iava程序格式。用户只需打开IavaIDE目录下的makefile.bat文件,即可实现将源代码转换为能在Iava虚拟机上运行的程序。转换后的程序会生成一个.lav文件,该文件可以直接在兼容Iava的手机上运行。
在完成Iava程序的开发和转换后,开发者可以在PC端的IavaSimulator中进行测试,确保程序在各种环境下都能正常运行。通过验证后,开发者可以直接将编译生成的.lav文件部署到手机上,进行实际应用。
Iava平台自带GUI功能,但允许开发者根据需要选择是否使用Iava GUI库。目前,Iava在对mt//等特定硬件上的兼容性表现良好,广泛支持MRP/IAVA双兼容系统,为开发者提供了广泛的硬件和系统选择空间。