1¡¢Java.utilµÄ¼¯ºÏÀàÖеÄÔªËرØÐëÊǶÔÏ󻯵ģ¬ËûÃDz»ÄÜÊÇ»ù±¾ÀàÐÍ¡£Èç²»ÄÜÉùÃ÷Set<char>»òList<int>¡£µ«¶ÔList<Integer>£¬¿ÉÒÔÍùÀïÃæ¼ÓintÐÍÊý¾Ý£¬Ëü»áÓÃJavaµÄautoboxing»úÖÆ×Ô¶¯×ª»»³ÉInteger¶ÔÏó¡£
2¡¢²ÎÊý»¯ÀàÖеÄÀàÐͲÎÊý¿ÉÒÔÊÇÊý×éÀàÐÍ£¬ÈçMap<String[],int[]),×¢Òâint[]ÐÍÊÇÒ»¸ö¶ÔÏ󣬶ø²»ÊÇÔʼÀàÐÍ¡£
3¡¢Èç¹û²»ÏëÓ÷ºÐ͹¦ÄÜ£¬¿ÉÒÔͨ¹ý´ø-source1.4±ê¼ÇÀ´±àÒ룻Ҳ¿ÉÒÔÔÚÉùÃ÷µÄÓò»ò·½·¨Ç°ÓÃ@SuppressWarings("unchecked")±ê×¢À´ºöÂÔ¡£
4¡¢Ò»¸öList<Integer>ÊÇÒ»¸öCollection<Integer>£¬µ«²»ÊÇÒ»¸öList<Object>£¬·ñÔòList<Integer>¿ÉÒÔת»»³ÉList<Object>,ÄÇôת»»ºóʲôÀàÐ͵ÄÊý¾Ý¶¼¿ÉÒÔ¼Ó½øÈ¥£¬Ã»Óдﵽ±àÒëÆÚÀàÐÍ°²È«µÄÄ¿µÄ¡£¼´£ºÀà¿ÉÒÔÉÏתÐÍ£¬ÀàÐͲÎÊý²»ÄÜÉÏתÐÍ¡£
5¡¢JavaÖÐÒýÈë·ºÐ͵ı¾ÖÊ£ºÎªÁËÌṩ±àÒëÆÚµÄÀàÐÍ°²È«¼ì²é£¬ÒÔÃâÀàÐͲ»°²È«µÄbug³öÏÖÔÚÔËÐÐÆÚ¡££¨×¢ÒâÕâÓëC++¼°C#ÖзºÐ͵ÄÄ¿µÄ²»Í¬£©
6¡¢Ò»¸öList<T>ÉÏתÐͳÉListÊǺϷ¨µÄ£¬ÕâÊÇΪÁ ......
ÎÊÌâÒ»£ºÈç±£¼ÓÔØJDBCÇý¶¯³ÌÐò£º
Õý³£ÎÒÃǼÓÔØÇý¶¯³ÌÐòÓÐÈý¸ö;¾¶£º
1.Class.forName(String)ÕâÏëµ±ÓÚclassLoaderÒ»¸öStringÖ¸¶¨µÄÀ࣬ÔÚ×°ÔØʱ°Ñ¸ÃÇý¶¯³ÌÐòµÄ¾²Ì¬ÄÚÈݶ¼³õʼ»¯£¬ÆäʵÕâʱÇý¶¯³ÌÐòÀàµ÷ÓÃÁËDriverManager.registerDriver(driver)·½·¨¡£
2.ʹÓÃϵͳÊôÐÔ£ºSystem.getProperty().load(new FileInputStream("ÊôÐÔÎļþ"));
ÔÚÊôÐÔÎļþÖÐÖ¸¶¨jdbc.driver=drivername ÕâÑùµÄºÃ´¦ÊÇ¿ÉÒÔͬʱ¼ÓÔضà¸öJDBC£¬»»Êý¾Ý¿âʱ²»Ó÷ÃÎÊJavaÔ´´úÂ룬ֻÊÇÐÞ¸ÄÊôÐÔÎļþ¡£
3.Ö±½ÓregisterDriver(driver£©ÕâÖÖ·½·¨×î¿É¿¿£¬¿ÉÒÔÔÚÈκλ·¾³ÏÂʹÓá£
1·½·¨¼òµ¥£¬µ«MSµÄJVM²»ÄÜÕýÈ·³õʼ»¯¡£±ÈÈçʹÓÃIEʱÔÚAPPLETÖоͲ»ÄÜʹÓã¬Ó¦¸ÃÓÃ3µÄ·½·¨¡£µ«3£©·½·¨ÔÚÁé»îÐÔ·½Ãæ²»Èç2£¬¿ÉÒÔ¸ù¾Ý»·¾³×ۺϿ¼ÂÇ¡£
ÎÊÌâ¶þ£º´ó¶ÔÏó´æ´¢
Ò»°ãÀ´Ëµ£¬´ó¶ÔÏó´æ´¢ÊÇ°ÑÎļþ´æµ½Êý¾Ý¿âÖУ¬µ±È»Ò²¿ÉÒÔÄÚ´æÖеij¬´ó×Ö·û´®¡£¶ÔÓÚÏóͼƬÕâÑùµÄÎļþµ±È»ÊÇÓöþ½øÖÆ´æ´¢£¬ÕâÀïÓкܶàÎóÇø£¬ÍøÂçÉϵĽ̳Ì99%¶¼ÊÇÐв»Í¨µÄ£¬
Á¬SUN×Ô¼ºµÄÎĵµ¶¼Ò»Ö±´íÎó£¬ËäÈ»´íÎóºÜС¡£°´Ëµ¶þ½øÖÆÎļþÓ¦¸Ã´æΪBLOBÀàÐÍ£¬µ«JBDC2²¢²»ÄÜÖ±½Ó ......
ÎÊÌâÒ»£ºÈç±£¼ÓÔØJDBCÇý¶¯³ÌÐò£º
Õý³£ÎÒÃǼÓÔØÇý¶¯³ÌÐòÓÐÈý¸ö;¾¶£º
1.Class.forName(String)ÕâÏëµ±ÓÚclassLoaderÒ»¸öStringÖ¸¶¨µÄÀ࣬ÔÚ×°ÔØʱ°Ñ¸ÃÇý¶¯³ÌÐòµÄ¾²Ì¬ÄÚÈݶ¼³õʼ»¯£¬ÆäʵÕâʱÇý¶¯³ÌÐòÀàµ÷ÓÃÁËDriverManager.registerDriver(driver)·½·¨¡£
2.ʹÓÃϵͳÊôÐÔ£ºSystem.getProperty().load(new FileInputStream("ÊôÐÔÎļþ"));
ÔÚÊôÐÔÎļþÖÐÖ¸¶¨jdbc.driver=drivername ÕâÑùµÄºÃ´¦ÊÇ¿ÉÒÔͬʱ¼ÓÔضà¸öJDBC£¬»»Êý¾Ý¿âʱ²»Ó÷ÃÎÊJavaÔ´´úÂ룬ֻÊÇÐÞ¸ÄÊôÐÔÎļþ¡£
3.Ö±½ÓregisterDriver(driver£©ÕâÖÖ·½·¨×î¿É¿¿£¬¿ÉÒÔÔÚÈκλ·¾³ÏÂʹÓá£
1·½·¨¼òµ¥£¬µ«MSµÄJVM²»ÄÜÕýÈ·³õʼ»¯¡£±ÈÈçʹÓÃIEʱÔÚAPPLETÖоͲ»ÄÜʹÓã¬Ó¦¸ÃÓÃ3µÄ·½·¨¡£µ«3£©·½·¨ÔÚÁé»îÐÔ·½Ãæ²»Èç2£¬¿ÉÒÔ¸ù¾Ý»·¾³×ۺϿ¼ÂÇ¡£
ÎÊÌâ¶þ£º´ó¶ÔÏó´æ´¢
Ò»°ãÀ´Ëµ£¬´ó¶ÔÏó´æ´¢ÊÇ°ÑÎļþ´æµ½Êý¾Ý¿âÖУ¬µ±È»Ò²¿ÉÒÔÄÚ´æÖеij¬´ó×Ö·û´®¡£¶ÔÓÚÏóͼƬÕâÑùµÄÎļþµ±È»ÊÇÓöþ½øÖÆ´æ´¢£¬ÕâÀïÓкܶàÎóÇø£¬ÍøÂçÉϵĽ̳Ì99%¶¼ÊÇÐв»Í¨µÄ£¬
Á¬SUN×Ô¼ºµÄÎĵµ¶¼Ò»Ö±´íÎó£¬ËäÈ»´íÎóºÜС¡£°´Ëµ¶þ½øÖÆÎļþÓ¦¸Ã´æΪBLOBÀàÐÍ£¬µ«JBDC2²¢²»ÄÜÖ±½Ó ......
1. Õ»(stack)Óë¶Ñ(heap)¶¼ÊÇJavaÓÃÀ´ÔÚRamÖдæ·ÅÊý¾ÝµÄµØ·½¡£ÓëC++²»Í¬£¬Java×Ô¶¯¹ÜÀíÕ»ºÍ¶Ñ£¬³ÌÐòÔ±²»ÄÜÖ±½ÓµØÉèÖÃÕ»»ò¶Ñ¡£
2. Õ»µÄÓÅÊÆÊÇ£¬´æÈ¡ËٶȱȶÑÒª¿ì£¬½ö´ÎÓÚÖ±½ÓλÓÚCPUÖеļĴæÆ÷¡£µ«È±µãÊÇ£¬´æÔÚÕ»ÖеÄÊý¾Ý´óСÓëÉú´æÆÚ±ØÐëÊÇÈ·¶¨µÄ£¬È±·¦Áé»îÐÔ¡£ÁíÍ⣬ջÊý¾Ý¿ÉÒÔ¹²Ïí£¬Ïê¼ûµÚ3µã¡£¶ÑµÄÓÅÊÆÊÇ¿ÉÒÔ¶¯Ì¬µØ·ÖÅäÄÚ´æ´óС£¬Éú´æÆÚÒ²²»±ØÊÂÏȸæËß±àÒëÆ÷£¬JavaµÄÀ¬»øÊÕ¼¯Æ÷»á×Ô¶¯ÊÕ×ßÕâЩ²»ÔÙʹÓõÄÊý¾Ý¡£µ«È±µãÊÇ£¬ÓÉÓÚÒªÔÚÔËÐÐʱ¶¯Ì¬·ÖÅäÄڴ棬´æÈ¡ËٶȽÏÂý¡£
3. JavaÖеÄÊý¾ÝÀàÐÍÓÐÁ½ÖÖ¡£
Ò»ÖÖÊÇ»ù±¾ÀàÐÍ(primitive types), ¹²ÓÐ8ÖÖ£¬¼´int, short, long, byte, float, double, boolean, char(×¢Ò⣬²¢Ã»ÓÐstringµÄ»ù±¾ÀàÐÍ)¡£ÕâÖÖÀàÐ͵Ķ¨ÒåÊÇͨ¹ýÖîÈçint a = 3; long b = 255L;µÄÐÎʽÀ´¶¨ÒåµÄ£¬³ÆΪ×Ô¶¯±äÁ¿¡£ÖµµÃ×¢ÒâµÄÊÇ£¬×Ô¶¯±äÁ¿´æµÄÊÇ×ÖÃæÖµ£¬²»ÊÇÀàµÄʵÀý£¬¼´²»ÊÇÀàµÄÒýÓã¬ÕâÀﲢûÓÐÀàµÄ´æÔÚ¡£Èçint a = 3; ÕâÀïµÄaÊÇÒ»¸öÖ¸ÏòintÀàÐ͵ÄÒýÓã¬Ö¸Ïò3Õâ¸ö×ÖÃæÖµ¡£ÕâЩ×ÖÃæÖµµÄÊý¾Ý£¬ÓÉÓÚ´óС¿ÉÖª£¬Éú´æÆÚ¿ÉÖª(ÕâЩ×ÖÃæÖµ¹Ì¶¨¶¨ÒåÔÚij¸ö³ÌÐò¿éÀïÃ棬³ÌÐò¿éÍ˳öºó£¬×Ö¶ÎÖµ¾ÍÏûʧÁË)£¬³öÓÚ×·ÇóËٶȵÄÔÒò£¬¾Í´æÔÚÓÚÕ»ÖС£
ÁíÍ⣬ջÓÐÒ»¸öºÜÖØÒªµÄÌØÊâÐÔ£ ......
ÔÚÕ⿪ʼ֮ǰ£¬ÎÒÃǵÃÏÈÁ˽âÒ»ÏÂʲôÊÇhttps¡£
https (Secure Hypertext Transfer Protocol) = °²È«³¬Îı¾´«ÊäÐÒé
httpsµÄÌصãÊÇ£º
1.Êý¾Ý¼ÓÃÜ£¨SSL£© = Secure Socket Layer
2.Éí·ÝÈÏÖ¤
µ±ÄãµÄÏîÄ¿ÐèÒª¿¼ÂÇ°²È«ÐÔµÄʱºò£¬²¿·ÖÄ£¿é¿ÉÒÔÓõ½https¡£µ±È»ÕâЩ¶¼µÃµ½CA×¢²á£¬ÒªÇ®Ç®µÄŶ¡£
ÕâÀïÎÒÏë¸ø´ó¼Ò½éÉܸö²»Êշѵġ£ÓÃJDKµÄkeytool¹¤¾ßÉú³ÉÖ¤Ê顢ȻºóÔÚTomcatÏÂÅäÖÃserver.xml£¬¾Í¿ÉÒÔʵÏÖhttps£¬¶Ô´«ÊäµÄË«ÏòÊý¾Ý½øÐмÓÃܺͽâÃÜ¡£
Ë«ÏòµÄ¼ÓÃܽâÃܹý³Ì£º
ÓÃTomcatÀ´ÅäÖÃSSLÖ÷ÒªÓÐÏÂÃæÕâôÁ½´ó²½Ö裺
Ò»¡¢Éú³ÉÖ¤Êé
1.ÔÚÃüÁîÐÐÏÂÖ´ÐУº
%Java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
ÔÚ´ËÃüÁîÖУ¬keytoolÊÇJDK×Ô´øµÄ²úÉúÖ¤ÊéµÄ¹¤¾ß¡£°ÑRSAÔËËã·¨Ôò×÷ΪÖ÷Òª°²È«ÔËËã·¨Ôò£¬Õâ±£Ö¤ÁËÓëÆäËü·þÎñÆ÷ºÍ×é¼þµÄ¼æÈÝÐÔ¡£
Õâ¸öÃüÁî»áÔÚÓû§µÄhome directory²úÉúÒ»¸ö½Ð×ö" .keystore " µÄÐÂÎļþ¡£ÔÚÖ´Ðкó£¬ÄãÊ×Ïȱ»ÒªÇó³öʾkeystoreÃÜÂë¡£TomcatʹÓõÄĬÈÏÃÜÂëÊÇ" changeit "(È«¶¼ÊÇСд×Öĸ)£¬Èç¹ûÄãÔ¸Ò⣬Äã¿ÉÒÔÖ¸¶¨Äã×Ô¼ºµÄÃÜÂë¡£Ä㻹ÐèÒªÔÚserver.xmlÅäÖÃÎļþÀïÖ¸¶¨×Ô¼ºµÄÃÜÂ룬ÕâÔÚÒÔºó»áÓÐÃèÊö¡£
Èç¹ûÒ»ÇÐ˳Àû£¬ÄãÏÖÔÚ¾ÍÓµÓÐÁËÒ»¸ö¿ÉÒÔ±»ÄãµÄ· ......
±àд¶àÏ̵߳ijÌÐòÒ»Ö±¶¼ÊÇÒ»¼þ±È½ÏÂé·³µÄÊÂÇ飬Ҫ¿¼ÂǺܶàÊÂÇ飬´¦Àí²»ºÃ»¹»á³öºÜ¶àÒâÏë²»µ½µÄÂé·³¡£¼ÓÉÏÏÖÔںܶ࿪·¢Õß½Ó´¥µ½µÄÏîÄ¿¶¼ÊÇ´ò×ÅÆóÒµ¼¶ÆìºÅµÄB/SÏîÄ¿£¬´ó¶àÊýÈ˶¼ºÜÉÙÉæ¼°¶àỊ̈߳¬ÕâÓÖΪ±¾ÎĵÄÖ÷½ÇÔö¼ÓÁËÒ»·ÝÉñÃظС£
½²µ½Java¶àỊ̈߳¬´ó¶àÊýÈËÄÔº£ÖÐÌø³öÀ´µÄÊÇThread¡¢Runnable¡¢synchronized……ÕâЩÊÇ×î»ù±¾µÄ¶«Î÷£¬ËäÈ»ÒѾ×㹻ǿ
´ó£¬µ«ÏëÒªÓúû¹Õæ²»ÈÝÒס£´ÓJDK
1.5¿ªÊ¼£¬Ôö¼ÓÁËjava.util.concurrent°ü£¬ËüµÄÒýÈë´ó´ó¼ò»¯Á˶àÏ̳߳ÌÐòµÄ¿ª·¢£¨Òª¸ÐлһÏ´óÅ£Doug Lee£©¡£
java.util.concurrent°ü·Ö³ÉÁËÈý¸ö²¿·Ö£¬·Ö±ðÊÇjava.util.concurrent¡¢
java.util.concurrent.atomicºÍjava.util.concurrent.lock¡£ÄÚÈݺ¸ÇÁ˲¢·¢¼¯ºÏÀà¡¢Ï̳߳ػúÖÆ¡¢Í¬
²½»¥³â»úÖÆ¡¢Ḭ̈߳²È«µÄ±äÁ¿¸üй¤¾ßÀà¡¢ËøµÈµÈ³£Óù¤¾ß¡£
ΪÁ˱ãÓÚÀí½â£¬±¾ÎÄʹÓÃÒ»¸öÀý×ÓÀ´×ö˵Ã÷£¬½»´úÒ»ÏÂËüµÄ³¡¾°£º
¼ÙÉèÒª¶ÔÒ»Ì×10¸ö½Úµã×é³ÉµÄ»·¾³½øÐмì²é£¬Õâ¸ö»·¾³ÓÐÁ½¸öÈë¿Úµã£¬Í¨¹ý½Úµã¼äµÄÒÀÀµ¹Øϵ¿ÉÒÔ±éÀúµ½Õû¸ö»·¾³¡£ÒÀÀµ¹Øϵ¿ÉÒÔ¹¹³ÉÒ»ÕÅÓÐÏòͼ£¬¿ÉÄÜ´æÔÚ»·¡£ÎªÁËÌá¸ß¼ì²éµÄЧÂÊ£¬¿¼ÂÇʹÓöàÏ̡߳£
1¡¢Executors
ͨ¹ýÕâ¸öÀàÄܹ»»ñµÃ¶àÖÖÏ̳߳صÄʵÀý£¬ÀýÈç¿ÉÒÔµ÷ÓÃnewSing ......
Ò»¡¢½¨±í
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`NAME` varchar(16) NOT NULL default '',
`REMARK` varchar(16) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
¶þ¡¢½¨Á¢´æ´¢¹ý³Ì
1¡¢»ñÈ¡Óû§ÐÅÏ¢
CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserList`()
BEGIN
select * from user;
END;
2¡¢Í¨¹ý´«Èë²ÎÊý´´½¨Óû§
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertUser`(nameVar varchar(16),remarkVar varchar(16))
BEGIN
insert into user(name,remark) values(nameVar,remarkVar);
END;
Èý¡¢µ÷ÓÃ
1¡¢»ñÈ¡Óû§ÐÅÏ¢
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/temp?user=root&password=root";
Connection conn = DriverManager.getConnection(url);
String proc = "call getUserList()";
CallableStatement cs = conn.prepareCall(proc);
rs = cs.executeQuery();
while(rs.next()){
&n ......
Ò»¡¢½¨±í
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`NAME` varchar(16) NOT NULL default '',
`REMARK` varchar(16) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
¶þ¡¢½¨Á¢´æ´¢¹ý³Ì
1¡¢»ñÈ¡Óû§ÐÅÏ¢
CREATE DEFINER=`root`@`localhost` PROCEDURE `getUserList`()
BEGIN
select * from user;
END;
2¡¢Í¨¹ý´«Èë²ÎÊý´´½¨Óû§
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertUser`(nameVar varchar(16),remarkVar varchar(16))
BEGIN
insert into user(name,remark) values(nameVar,remarkVar);
END;
Èý¡¢µ÷ÓÃ
1¡¢»ñÈ¡Óû§ÐÅÏ¢
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/temp?user=root&password=root";
Connection conn = DriverManager.getConnection(url);
String proc = "call getUserList()";
CallableStatement cs = conn.prepareCall(proc);
rs = cs.executeQuery();
while(rs.next()){
&n ......