﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-jackyxio-随笔分类-JAVA</title><link>http://www.cnitblog.com/jackyxio/category/1358.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 14:43:44 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 14:43:44 GMT</pubDate><ttl>60</ttl><item><title>初步认识JAVA（四）-互斥</title><link>http://www.cnitblog.com/jackyxio/archive/2007/07/10/29685.html</link><dc:creator>jacky的无聊空间</dc:creator><author>jacky的无聊空间</author><pubDate>Mon, 09 Jul 2007 17:04:00 GMT</pubDate><guid>http://www.cnitblog.com/jackyxio/archive/2007/07/10/29685.html</guid><wfw:comment>http://www.cnitblog.com/jackyxio/comments/29685.html</wfw:comment><comments>http://www.cnitblog.com/jackyxio/archive/2007/07/10/29685.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/jackyxio/comments/commentRss/29685.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/jackyxio/services/trackbacks/29685.html</trackback:ping><description><![CDATA[<p>时间还过的真快呀，转眼就过了一年了。接触JAVA也快二年了，当初写BLOG的初衷也忘记了。今天突然想起，写下一篇吧。<br><br>多线程是服务端程序用的最多的技术，为了让多线程有序的访问共同资源，就必须在访问先查询资源是否可以访问，因此就产生了互斥。JAVA的互斥使用synchronized关键字来实现的，在使用上有二种方法，下面给出例子。<br><br>1.声明变量或函数在同一对象内可进行互斥<br><br>class TestClass<br>{<br>public byte[] m_Test = new byte[1];<br>public synchronized void Test()<br>{<br>//函数中的代码在互斥效果内<br>}<br><br>public void Test1()<br>{<br>synchronized(m_Test)<br>{<br>//段中的代码在互斥效果内<br>}<br>}<br>}<br><br>TestClass t = new TestClass();<br>所有的线程在使用t对象时，对t内的synchronized(m_Test)块和Test函数访问产生互斥作用。<br><br>2.声明变量或函数在同一个进程内可进行互斥<br>class TestClass<br>{<br>public static byte[] m_Test = new byte[1];<br>public static synchronized void Test()<br>{<br>//函数中的代码在互斥效果内<br>}<br><br>public void Test1()<br>{<br>synchronized(m_Test)<br>{<br>//段中的代码在互斥效果内<br>}<br>}<br>}<br><br>TestClass t = new TestClass();<br>TestClass t1 = new TestClass();<br>所有的线程在使用t和t1对象时，对synchronized(m_Test)块和Test函数访问均产生互斥作用，同时只存在一个线程访问。</p>
<p>仔细看一下，方法2比方法1，就是在声明的时候将变量或函数声明成静态的，除此以外并无差别。但是功能却天差地远。</p>
<img src ="http://www.cnitblog.com/jackyxio/aggbug/29685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/jackyxio/" target="_blank">jacky的无聊空间</a> 2007-07-10 01:04 <a href="http://www.cnitblog.com/jackyxio/archive/2007/07/10/29685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初步认识JAVA（三）-函数传参</title><link>http://www.cnitblog.com/jackyxio/archive/2006/05/24/10989.html</link><dc:creator>jacky的无聊空间</dc:creator><author>jacky的无聊空间</author><pubDate>Wed, 24 May 2006 03:22:00 GMT</pubDate><guid>http://www.cnitblog.com/jackyxio/archive/2006/05/24/10989.html</guid><wfw:comment>http://www.cnitblog.com/jackyxio/comments/10989.html</wfw:comment><comments>http://www.cnitblog.com/jackyxio/archive/2006/05/24/10989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/jackyxio/comments/commentRss/10989.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/jackyxio/services/trackbacks/10989.html</trackback:ping><description><![CDATA[工作一直很忙，也没来得及再来写一些心得，今天有点空，说一下JAVA函数传参的问题<br><br>C/C++中，想从函数中传参出来，可以使用指针或者引用，但在JAVA里就没这些方法，一般情况，绝大部分对象都可以直接传参，但是String类就是不行，我也不清楚是什么原因，如果想从函数体中传字符串出来，用StringBuffer吧。<br><br>虽然这没有什么难的，但是不知道的人，很容易绕在里面，怎么也想不通原因。 
<img src ="http://www.cnitblog.com/jackyxio/aggbug/10989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/jackyxio/" target="_blank">jacky的无聊空间</a> 2006-05-24 11:22 <a href="http://www.cnitblog.com/jackyxio/archive/2006/05/24/10989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初步认识JAVA（二）--变量</title><link>http://www.cnitblog.com/jackyxio/archive/2005/11/27/4934.html</link><dc:creator>jacky的无聊空间</dc:creator><author>jacky的无聊空间</author><pubDate>Sat, 26 Nov 2005 16:52:00 GMT</pubDate><guid>http://www.cnitblog.com/jackyxio/archive/2005/11/27/4934.html</guid><wfw:comment>http://www.cnitblog.com/jackyxio/comments/4934.html</wfw:comment><comments>http://www.cnitblog.com/jackyxio/archive/2005/11/27/4934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/jackyxio/comments/commentRss/4934.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/jackyxio/services/trackbacks/4934.html</trackback:ping><description><![CDATA[<P>不知不觉，学了几天的JAVA了，来写写学习心得，留个记念。<BR>变量，是每个高级语言都有的元素，JAVA的变量好象被分为了二种，一种是基础变量，象int boolean long String等等，另一种就是类变量。基础变量有一个很值得注意的地方就是，作为函参时，只能传入，不能传出的，而类变量而可以。<BR>随着学习的进步，对JAVA的变量感觉越来越熟悉，如果你学过C/C++的话，你可以将JAVA的变量看做是指针，如果没有new的话，是没有分配内存的。如：<BR>class T{<BR>....<BR>};<BR>T cTemp;//这样这个类对象是没有被分配内存的。<BR>String cT = "Hello";//JAVA中很多这样的用法，cT在这里还是没有被分配内存，而是指向了"Hello"这个字串在内存中的地址。<BR>class T{<BR>T(){System.out.println("Test");};<BR>};<BR>T cTemp;//其实构造函数是没有被执行的<BR>cTemp = new T();//这样才会调用构造函数<BR>好的，基本上现在学到的有关JAVA变量的东西就只有这些了。<BR>其它的以后再说吧！</P><img src ="http://www.cnitblog.com/jackyxio/aggbug/4934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/jackyxio/" target="_blank">jacky的无聊空间</a> 2005-11-27 00:52 <a href="http://www.cnitblog.com/jackyxio/archive/2005/11/27/4934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>初步认识JAVA（一）</title><link>http://www.cnitblog.com/jackyxio/archive/2005/11/15/4554.html</link><dc:creator>jacky的无聊空间</dc:creator><author>jacky的无聊空间</author><pubDate>Tue, 15 Nov 2005 14:51:00 GMT</pubDate><guid>http://www.cnitblog.com/jackyxio/archive/2005/11/15/4554.html</guid><wfw:comment>http://www.cnitblog.com/jackyxio/comments/4554.html</wfw:comment><comments>http://www.cnitblog.com/jackyxio/archive/2005/11/15/4554.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/jackyxio/comments/commentRss/4554.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/jackyxio/services/trackbacks/4554.html</trackback:ping><description><![CDATA[<p>干了四、五年的VC程序员，怕贪多不精，一直都没想过再学点其它的语言，哪知因为工作的需要，不得不买了本《JAVA编程语言》（第三版），老老实实的从头学起。<br>第一章、JAVA概述，将JAVA语言一些大致情况，仔细看了看。有着C/C++语言的底子，大部分的都能很轻松的明白，格式的差异、逐步提到的一些基础类和方法是需要注意的，JAVA还提出了一个域（field）的概念，我也不是太明白这个域的作用是什么，以后了解了再回过头来更改吧。<br>Object类是个很特别的类，所有的类对象都可以赋值给Object类对象，也可以强制转换回原来的类对象。这样就为程序的数据转换带来了方便。<br>书不管怎么看也好，学习一种新的语言，多动动手自己写写，印象总是深刻一些。在IDE的选择上，我与朋友出现了分歧。我提议一边学习语言一边熟悉流行的IDE，而我的朋友们觉得则应该使用简单的文本编辑器加JDK，在我粗略的看过JBuilder后，也觉得这个建议更适合语言的学习。</p>
<img src ="http://www.cnitblog.com/jackyxio/aggbug/4554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/jackyxio/" target="_blank">jacky的无聊空间</a> 2005-11-15 22:51 <a href="http://www.cnitblog.com/jackyxio/archive/2005/11/15/4554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>