JavaÄÚ´æ¹ÜÀí(¶þ¡¢JavaÀ¬»ø»ØÊÕ)
¶þ¡¢JavaÀ¬»ø»ØÊÕ
1. JVMÔËÐл·¾³ÖÐÀ¬»ø¶ÔÏóµÄ¶¨Òå
Ò»¸ö¶ÔÏó´´½¨ºó±»·ÅÖÃÔÚJVMµÄ¶ÑÄÚ´æÖУ¬µ±ÓÀÔ¶²»ÔÙÒýÓÃÕâ¸ö¶ÔÏóʱ£¬Ëü½«±»JVMÔÚ¶ÑÄÚ´æÖлØÊÕ¡£»ò µ±¶ÔÏóÔÚJVMÔËÐпռäÖÐÎÞ·¨Í¨¹ý¸ù¼¯ºÏ(root set)µ½´ïʱ£¬Õâ¸ö¶ÔÏó¾Í±»³ÆÎªÀ¬»ø¶ÔÏó¡£
2. ¶ÑÄÚ´æ
* ÔÚJVMÆô¶¯Ê±±»´´½¨£»¶ÑÄÚ´æÖÐËù´æ´¢µÄ¶ÔÏó¿ÉÒÔ±»JVM×Ô¶¯»ØÊÕ£¬²»ÄÜͨ¹ýÆäËûÍⲿÊֶλØÊÕ
* ¶ÑÄÚ´æ¿É·ÖΪÁ½¸öÇøÓò£ºÐ¶ÔÏóÇøºÍÀ϶ÔÏóÇø
-- жÔÏóÇø¿É·ÖΪÈý¸öÐ¡Çø£ºEdenÇø¡¢fromÇø¡¢ToÇø
EdenÇøÓÃÀ´±£´æÐ´´½¨µÄ¶ÔÏ󣬵±EdenÇøÖеĶÔÏóÂúÁËÖ®ºó£¬JVM½«»á×ö¿É´ïÐÔ²âÊÔ£¬¼ì²âÓÐÄÄЩ¶ÔÏóÓɸù¼¯ºÏ³ö·¢ÊDz»¿É´ïµÄ£¬²»¿É´ïµÄ¶ÔÏó¾Í»á±» JVM»ØÊÕ£¬²¢½«ËùÓеĻ¶ÔÏó´ÓEdenÇø¿½µ½ToÇø£¬´ËʱһЩ¶ÔÏ󽫷¢Éú״̬½»»»£¬ÓеĶÔÏó¾Í´ÓToÇø±»×ªÒƵ½fromÇø¡£
3. JVMÖжÔÏóµÄÉúÃüÖÜÆÚ
* ´´½¨½×¶Î(²½Öè)
-- Ϊ¶ÔÏó·ÖÅä´æ´¢¿Õ¼ä
-- ¿ªÊ¼¹¹Ôì¶ÔÏó
-- µÝ¹éµ÷ÓÃÆä³¬ÀàµÄ¹¹Ôì·½·¨
-- ½øÐжÔÏóʵÀý³õʼ»¯Óë±äÁ¿³õʼ»¯
-- Ö´Ðй¹Ôì·½·¨Ìå
* Ó¦Óý׶Î
-- ÌØÕ÷£ºÏµÍ³ÖÁÉÙά»¤×ŶÔÏóµÄÒ»¸öÇ¿ÒýÓã»ËùÓжԸöÔÏóÒýÓÃÇ¿ÒýÓÃ(³ý·ÇÏÔʾÉùÃ÷ΪÆäËüÒýÓÃ)
-- Ç¿ÒýÓÃ
Ö¸JVMÄÚ´æ¹ÜÀíÆ÷´Ó¸ùÒýÓü¯ºÏ³ö·¢£¬±éѰ¶ÑÖÐËùÓе½´ï¶ÔÏóµÄ·¾¶¡£µ±µ½´ïij¶ÔÏóµÄÈÎÒâ·¾¶¶¼²»º¬ÓÐÒýÓöÔÏóʱ£¬¶ÔÕâ¸ö¶ÔÏóµÄÒýÓþͱ»³ÆÎªÇ¿ÒýÓá£
µ±ÄÚ´æ²»×ãʱ£¬JVMÄþÔ¸Å׳öOutOfMemeryError´íÎóʹ³ÌÐòÍ£Ö¹£¬Ò²²»»á¿¿ÊջؾßÓÐÇ¿ÒýÓõĶÔÏóÀ´ÊÍ·ÅÄÚ´æ¿Õ¼ä
-- ÈíÒýÓÃ
ËüÄÜʵÏÖcache¹¦ÄÜ£¬·ÀÖ¹×î´óÏ޶ȵÄʹÓÃÄÚ´æÊ±ÒýÆðµÄOutOfMemoryÒì³££¬ÔÚÄÚ´æ²»¹»ÓõÄʱºòjvm»á×Ô¶¯»ØÊÕSoft Reference¡£
ÈíÒýÓÿÉÒÔºÍÒ»¸öÒýÓöÓÁÐ(ReferenceQueue)ÁªºÏʹÓã¬Èç¹ûÈíÒýÓÃËùÒýÓõĶÔÏó±»À¬»ø»ØÊÕ£¬javaÐéÄâ»ú¾Í»á°ÑÕâ¸öÈíÒýÓüÓÈëµ½ÓëÖ®¹ØÁªµÄÒýÓöÓÁÐÖС£
JavaÖÐÌṩÈíÒýÓõİü£ºjava.lang.ref.SoftReference(ºóÐøÏê½â)
ÈíÒýÓÃ
ʵÏÖcache¹¦ÄÜ,·ÀÖ¹×î´óÏ޶ȵÄʹÓÃÄÚ´æÊ±ÒýÆðµÄOutOfMemoryÒì³£,ÔÚÄÚ´æ²»¹»ÓõÄʱºòjvm»á×Ô¶¯»ØÊÕSoft Reference.ÈíÒýÓÃ
Ïà¹ØÎĵµ£º
import java.awt.*;
import java.awt.event.*;
public class TestFrame {
Frame fm = new Frame();
public void init(){
fm.setSize(300,300);
Button btn = new Button("ok");
fm.add(btn);
btn.addActionListener(ne ......
Çë²»Òª°ÑÄãµÄѧϰJava֮·ºÍÆäËü¼ÆËã»ú¼¼Êõ·Ö¿ª¿´´ý£¬¼¼ÊõµÄÁªÏµÍùÍùÊÇǧ˿ÍòÂÆµÄ£¬ÄãÓ¦¸ÃÕÆÎÕһЩѧϰJavaËùÉæ¼°µÄ»ù´¡ÖªÊ¶£¬¶ÔÓÚ “CLASSPATHÒªÔõôÉèÖð¡”¡¢“¹òÇóJDKÏÂÔØµØÖ·”µÈµÈÎÊÌ⣬Äã²»¸ÃÎÊ£¬ÒòΪInternetÉÏÌ«¶à´ð°¸ÁË£¬ÉõÖÁ»»¸ö½Ç¶È˵£¬ÄãÊDz»ÊÇ»¹²»ÊʺÏÖ±½Óѧϰ±à³Ì£¿
1£©Âò±¾JavaѧϰÓà ......
½ñÌì³é¿ÕÏÂÁË¡¶java½â»ó¡·Õâ±¾Êé¿´ÁËһϣ¬È·Êµ²»´í£¬Ìá³öÁ˺ܶàÎÒÃÇÆ½Ê±²»»á×¢ÒâµÄСÎÊÌâ¡£ÏëÏëÈç¹û²»×¢Òâ˵²»¶¨»áÒòΪһ¸öBUGÓôÃÆ¸öÒ»Á½ÌìÒ²ÕÒ²»µ½¡£ÒÔÏÂÊÇ×ܽáµÄ±Ê¼Ç£¬±¸Íü~~
1.ÅÐ¶ÏÆæÊý
i % 2 == 1 ÔÚi Ϊ¸ºÊýʱ½á¹ûΪ-1£¬ËùÒÔʹÓÃi % 2 != 0À´Åжϣ»µ±ÓÐÐÔÄÜÒªÇóʱʹÓà (i & 1) != 0¡£
*ÔÚʹÓÃ%ʱһ¶¨Òª¿¼Âǵ ......
Ò»¡¢ÐÔÄÜÎÊÌâ
Ëæ×ÅJava 6¶ÔÓÚSwingÐÔÄܵĸĽø£¬SwingµÄÔËÐÐËÙ¶ÈÒѾ¿ªÊ¼µÃµ½ÁË´ó´óµÄÌá¸ß£¬¿´¿´NetBeans¾ÍÖªµÀÁË£¬NetBeans¾ÍÊÇSwing¿ª·¢µÄ£¬Èç¹ûÄãÅÜSwingºÜÂý£¬ºÜºÄ×ÊÔ´£¬ÄÇôӦ¸Ã´Ó×Ô¼ºµÄ³ÌÐòÉÏÕÒÕÒÎÊÌâ£¬ÍÆ¼öʹÓÃNetBeans×Ô´øµÄProfile²éÕÒÔÒò£¬½Ì³ÌÔÚÕâÀï – Profile Introduce.
¶þ¡¢LookAndFeel
ÓÃSwing×öÆó ......
¸½Â¼A: Java±àÂë¹æ·¶
Ò»¡¢ JavaÃüÃûµÄÒ»°ãÐÔÖ¸µ¼
1. ÀàÃûÊ××ÖĸӦ¸Ã´óд¡£ÊôÐÔ£¨³ÉÔ±±äÁ¿£©¡¢·½·¨¡¢¶ÔÏó±äÁ¿ÒÔ¼°ËùÓбêʶ·û£¨ÈçÐÎʽ²Î
Êý¡¢Êµ¼Ê²ÎÊý¡¢¾Ö²¿±äÁ¿£©µÄÊ××ÖĸӦСд£¬ÆäÖаüº¬µÄËùÓе¥´Ê¶¼Ó¦½ô¿¿ÔÚÒ»Æð£¬¶ø
ÇÒ´óдÖм䵥´ÊµÄÊ××Öĸ¡£
ÀýÈ磺ÀàÃû£ºThisIsAClassName ÊôÐÔ»ò·½·¨Ãû£ºthisIsMethodOrFieldName
......