??xml version="1.0" encoding="utf-8" standalone="yes"?>jzzjzzjzz亚洲成熟少妇,欧美日韩国产黄,久久久久一区二区http://www.aygfsteel.com/llscp/Easy things should be easy, and hard things should be possible.zh-cnSat, 05 Jul 2025 19:43:07 GMTSat, 05 Jul 2025 19:43:07 GMT60java中堆和栈的区?/title><link>http://www.aygfsteel.com/llscp/archive/2012/03/17/372102.html</link><dc:creator>杲杲</dc:creator><author>杲杲</author><pubDate>Sat, 17 Mar 2012 11:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/llscp/archive/2012/03/17/372102.html</guid><wfw:comment>http://www.aygfsteel.com/llscp/comments/372102.html</wfw:comment><comments>http://www.aygfsteel.com/llscp/archive/2012/03/17/372102.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/llscp/comments/commentRss/372102.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/llscp/services/trackbacks/372102.html</trackback:ping><description><![CDATA[<pre id="best-answer-content" class="reply-text mb10">Java的堆是一个运行时数据?cȝ(对象从中分配I间。这些对象通过new、newarray、anewarray和multianewarray{?指o建立Q它们不需要程序代码来昑ּ的释放。堆是由垃圾回收来负责的Q堆的优势是可以动态地分配内存大小Q生存期也不必事先告诉编译器Q因为它是在q行?动态分配内存的QJava的垃圾收集器会自动收走这些不再用的数据。但~点是,׃要在q行时动态分配内存,存取速度较慢? 栈的优势是,存取速度比堆要快Q仅ơ于寄存器,栈数据可以共享。但~点是,存在栈中的数据大与生存期必L定的,~Z灉|性。栈中主要存放一些基本类 型的变量Q?int, short, long, byte, float, double, boolean, charQ和对象句柄? 栈有一个很重要的特D性,是存在栈中的数据可以共享。假设我们同时定义: int a = 3; int b = 3Q? ~译器先处理int a = 3Q首先它会在栈中创徏一个变量ؓa的引用,然后查找栈中是否?q个|如果没找刎ͼ将3存放q来Q然后将a指向3。接着处理int b = 3Q在创徏完b的引用变量后Q因为在栈中已经?q个|便将b直接指向3。这P出Ca与b同时均指?的情c? q时Q如果再令a=4Q那么编译器会重新搜索栈中是否有4|如果没有Q则?存放q来Qƈ令a指向4Q如果已l有了,则直接将a指向q个地址。因此a值的改变不会影响到b的倹{? 要注意这U数据的׃n与两个对象的引用同时指向一个对象的q种׃n是不同的Q因U情况a的修改ƈ不会影响到b, 它是q译器完成的,它有利于节省I间。而一个对象引用变量修改了q个对象的内部状态,会媄响到另一个对象引用变量? String是一个特D的包装cL据。可以用Q? String str = new String("abc"); String str = "abc"; 两种的Ş式来创徏Q第一U是用new()来新建对象的Q它会在存放于堆中。每调用一ơ就会创Z个新的对象? 而第二种是先在栈中创Z个对Stringcȝ对象引用变量strQ然后查找栈中有没有存放"abc"Q如果没有,则将"abc"存放q栈Qƈ令str指向”abc”Q如果已l有”abc” 则直接ostr指向“abc”? 比较c里面的数值是否相{时Q用equals()ҎQ当试两个包装cȝ引用是否指向同一个对象时Q用==Q下面用例子说明上面的理论? String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2); //true 可以看出str1和str2是指向同一个对象的? String str1 =new String ("abc"); String str2 =new String ("abc"); System.out.println(str1==str2); // false 用new的方式是生成不同的对象。每一ơ生成一个? 因此用第一U方式创建多?#8221;abc”字符?在内存中其实只存在一个对象而已. q种写法有利与节省内存空? 同时它可以在一定程度上提高E序的运行速度Q因为JVM会自动根据栈中数据的实际情况来决定是否有必要创徏新对象。而对于String str = new String("abc")Q的代码Q则一概在堆中创徏新对象,而不其字符串值是否相{,是否有必要创建新对象Q从而加重了E序的负担? 另一斚w, 要注? 我们在用诸如String str = "abc"Q的格式定义cLQL惛_然地认ؓQ创ZStringcȝ对象str。担心陷阱!对象可能q没有被创徏Q而可能只是指向一个先前已l创建的 对象。只有通过new()Ҏ才能保证每次都创Z个新的对象? ׃Stringcȝimmutable性质Q当String变量需要经常变换其值时Q应该考虑使用StringBufferc,以提高程序效率?/pre> <div id="wmqeeuq" class="details float-r"> <div id="wmqeeuq" class="value-block "> <div id="wmqeeuq" class="value-block-inner"> <div style="display: none" class="value-tip">赞同</div> <div id="wmqeeuq" class="value-num value-num-fixed">28</div></div></div><span style="line-height: 26px; vertical-align: baseline" class="v-split">|</span> <span style="line-height: 26px; zoom: 1; vertical-align: baseline" id="comment-link-704946607" class="comment-link">评论</span> </div><img src ="http://www.aygfsteel.com/llscp/aggbug/372102.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/llscp/" target="_blank">杲杲</a> 2012-03-17 19:49 <a href="http://www.aygfsteel.com/llscp/archive/2012/03/17/372102.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的BigInteger(http://www.aygfsteel.com/llscp/archive/2012/03/14/371887.html杲杲杲杲Wed, 14 Mar 2012 14:01:00 GMThttp://www.aygfsteel.com/llscp/archive/2012/03/14/371887.htmlhttp://www.aygfsteel.com/llscp/comments/371887.htmlhttp://www.aygfsteel.com/llscp/archive/2012/03/14/371887.html#Feedback0http://www.aygfsteel.com/llscp/comments/commentRss/371887.htmlhttp://www.aygfsteel.com/llscp/services/trackbacks/371887.htmlJAVA之BigInteger

?a target="_self">Java来处理高_ֺ问题Q相信对很多ACMer来说都是一件很happy的事Q简单易懂。用Java刷了一些题Q感觉Javaq不错,在处理高_ֺ和进制{换中Q调用库函数的来处理。下面是写的一些Java中一些基本的函数的及?#8230;…

头文Ӟimport java.io.*;

import java.util.*;

import java.math.*;

dQ?Scanner cin = Scanner (System.in);

while(cin.hasNext())//{h?=EOF

n=cin.nextInt();//d一个int型的?/p>

n=cin.nextBigInteger();//d一个大整数

输出Q?System.out.print(n);//打印n

System.out.println();//换行

System.out.printf("%d\n",n);//也可以类似c++里的输出方式

定义Q?int i,j,k,a[];

a = new int[100];

BigInteger n,m;

BigDecimal n;

String s;

数据cdQ?/p>

数据cd cd?位长 取D?默认?/p>

布尔?boolean 1 true,false false

字节?byte 8 -128-127 0

字符?char 16 ‘\u000’-\uffff ‘\u0000’

短整?short 16 -32768-32767 0

整型 int 32 -2147483648,2147483647 0

长整?long 64 -9.22E18,9.22E18 0

点?float 32 1.4E-45-3.4028E+38 0.0

双精度型 double 64 4.9E-324,1.7977E+308 0.0

q里特别要提出出的两U类型:

BigInteger L大的整数Q原则上是,只要你的计算机的内存_大,可以有无限位?/p>

BigInteger L大的实数Q可以处理小数精度问题?/p>

BigInteger中一些常见的函数Q?/p>

A=BigInteger.ONE

B=BigInteger.TEN

C=BigInteger.ZERO

一些常见的数的赋初倹{将int型的数赋值给BigIntegerQBigInteger.valueOf(k);

基本的函敎ͼ

valueOf:赋初?/p>

add:+ a.add(b);

subtract:-

multiply:*

divide:/

remainderQthis % val

divideAndRemainderQa[0]=this / val; a[1]=this % val

powQa.pow(b)=a^b

gcd,abs:公约敎ͼl对?/p>

negateQ取负数

signumQ符号函?/p>

modQa.mod(b)=a%b;

shiftLeft:左移Qthis << n Qthis*2^n;

shiftRight:右移Qthis >> nQthis/2^n;

and:{同于c++?amp;&,且;

orQ||Q或;

xor:异或QBigInteger xor(BigInteger val),this^val

not:!,非;

bitLengthQ返回该数的最二q制补码表示的位的个敎ͼ?*不包? W号?(ceil(log2(this <0 ? -this : this + 1)))。对正数来说Q这{h于普通二q制表示的位的个数?/p>

bitCountQ返回该数的二进制补码表CZ不包扩符号位在内的位的个数。该Ҏ?BigIntegers 之上实现位向量风格的集合时很有用?/p>

isProbablePrimeQ如果该 BigInteger 可能是素敎ͼ则返? true Q如果它很明是一个合敎ͼ则返?false ?参数 certainty 是对调用者愿意忍受的不确定性的度量Q如果该数是素数的概率超q了 1 - 1/2**certaintyҎQ则该方法返?true 。执行时间正比于参数定性的倹{?/p>

compareToQ根据该数值是于、等于、或大于 val q回 -1? ?1Q?/p>

equalsQ判断两数是否相{,也可以用compareTo来代替;

minQmaxQ取两个数的较小、大者;

intValueQlongValueQfloatValueQdoublueQ把该数转换cd的数的倹{?/p>

今天参考课本写了一个关于二q制与十q制转换的程序,E序法不难Q但写完后测试发C论是二{十还是十转二Q对于大?1亿即过整数范围的数不能很好的{换。都会变?.
参考书c发C用用BigInteger可以解决q个问题?br /> 于是查找了下JDK,然后试几次l于写成功了Q?br /> 使用心得如下Q?/p>

1QBigInteger属于java.math.BigInteger,因此在每ơ用前都要import q个cR偶开始就忘记import了,于是LC找不到提示W?/p>

2Q其构造方法有很多Q但现在偶用到的有: BigInteger(String val)
?BigInteger 的十q制字符串表CŞ式{换ؓ BigInteger?br /> BigInteger(String val, int radix)
指定基数的 BigInteger 的字W串表示形式转换?BigInteger?br /> 如要int型的2转换为BigInteger型,要写为BigInteger two=new BigInteger("2"); //注意2双引号不能省?/p>

3QBigIntegercL拟了所有的int型数学操作,如add()==“+”,divide()==“-”{,但注意其内容q行数学q算时不能直接用数学运符q行q算Q必M用其内部Ҏ。而且其操作数也必MؓBigInteger型?br /> 如:two.add(2)是一U错误的操作Q因?没有变ؓBigInteger型?/p>

4Q当要把计算l果输出时应该?toStringҎ其转换?0q制的字W串Q详l说明如下:
String toString()
q回?BigInteger 的十q制字符串表CŞ式?br /> 输出ҎQSystem.out.print(two.toString());

5,另外说明三个个用到的函数?BigInteger remainder(BigInteger val)
q回其gؓ (this % val) ?BigInteger?br /> BigInteger negate()
q回其值是 (-this) ?BigInteger?br /> int compareTo(BigInteger val)
此 BigInteger 与指定的 BigInteger q行比较?br /> remainder用来求余数?br /> negate操作数变ؓ相反数?br /> compare的详解如下:

compareTo
public int compareTo(BigInteger val)此 BigInteger 与指定的 BigInteger q行比较。对于针对六个布比较运符 (<, ==, >, >=, !=, <=) 中的每一个运符的各个方法,优先提供此方法。执行这些比较的语句是:(x.compareTo(y) <op> 0)Q其? <op> 是六个比较运符之一?br /> 指定者:
接口 Comparable<BigInteger> 中的 compareTo
参数Q?br /> val - 此 BigInteger 与之比较?BigInteger?br /> q回Q?/p>

BigInteger的数转ؓ2q制Q?/p>

public class TestChange {
public static void main(String[] args) {
System.out.println(change("3",10,2));
}
//num 要{换的?from源数的进?to要{换成的进?br /> private static String change(String num,int from, int to){
return new java.math.BigInteger(num, from).toString(to);
}
}



杲杲 2012-03-14 22:01 发表评论
]]>
eclipse for JavaEE 下怎么建立一个Servletc?/title><link>http://www.aygfsteel.com/llscp/archive/2012/03/12/371762.html</link><dc:creator>杲杲</dc:creator><author>杲杲</author><pubDate>Mon, 12 Mar 2012 14:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/llscp/archive/2012/03/12/371762.html</guid><wfw:comment>http://www.aygfsteel.com/llscp/comments/371762.html</wfw:comment><comments>http://www.aygfsteel.com/llscp/archive/2012/03/12/371762.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/llscp/comments/commentRss/371762.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/llscp/services/trackbacks/371762.html</trackback:ping><description><![CDATA[<p>选中文g夏V?strong>Java Resources: src</strong>?叛_?strong>new</strong>??strong>other</strong>??strong>Web</strong>??strong>servlet</strong>?/p> <p>建立完成后,可以发现Q?strong>WebContent</strong>??strong>WEB-INF</strong>??strong>web.xml</strong>】,已经d了刚才的那个servlet的信息?/p> <p> </p> <p>---------</p> 需要注意:需要把<strong>tomcat</strong>中的<strong>servlet-api.jar import</strong> 刎ͼ?strong>WebContent</strong>??strong>WEB-INF</strong>?【lib】中<img src ="http://www.aygfsteel.com/llscp/aggbug/371762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/llscp/" target="_blank">杲杲</a> 2012-03-12 22:38 <a href="http://www.aygfsteel.com/llscp/archive/2012/03/12/371762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web术语—request、forward、redirect、error、GET、POST、URL、URI http://www.aygfsteel.com/llscp/archive/2012/03/11/371692.html杲杲杲杲Sun, 11 Mar 2012 15:33:00 GMThttp://www.aygfsteel.com/llscp/archive/2012/03/11/371692.htmlhttp://www.aygfsteel.com/llscp/comments/371692.htmlhttp://www.aygfsteel.com/llscp/archive/2012/03/11/371692.html#Feedback0http://www.aygfsteel.com/llscp/comments/commentRss/371692.htmlhttp://www.aygfsteel.com/llscp/services/trackbacks/371692.html

1.览器的h与{到的区别

2.Web环境下request、forward、redirect、error之间的关联与区别

3.Web环境下请求方式GET与POST的区?/p>

4.URL与URI的区?/p>

关于HTTPh程参见下面的URL地址Q?/p>

http://www.cnblogs.com/stg609/archive/2008/07/06/1236966.html


一.览器的h与{到的区别

hQ在现有|页的基上检查网늚是否有更新的内容。在查时会保留之前的一些变量的|因此有时可能会造成h后网出现错误,或者无法打开的情c与转到的区别是览器取|页的新内容来更新本机缓存,在更新的同时保留之前的一些变量?/p>

转到Q相当于在地址栏中重新输入|页的URL讉KQ浏览器会尽量用已l存于本Z的缓存。相对于hQ{到是一U全新的讉KQ它会尽量用本Z的缓存文Ӟ但不保留之前的变量?/p>

?web环境下request、forward、redirect、error之间的关联与区别

requestQ向服务器发送一个请求,然后服务器会q回一个结果给h客户端,q带一个response code?/p>

forwardQ是服务器内部重定向Q程序收到请求后重新定向到另一个程序,而客hq不知晓。客L面的url地址不会发生改变?/p>

redirectQ是服务器收到请求后发送一个状态头l客P客户再ơ请求,有两次|络通行的来往。ƈ且对于客h说url地址已经发生了变化?/p>

区别:

cd
概念
׃n数据
应用
Redirect
URL重新定向Q可以是L的URL
不能׃nrequest里面的数?/div>
一般用于用h销d时返回主面和蟩转到其它的网站等{?/div>
Forward
面的{发:只能是同一个Web应用E序的其他Weblg
转发面和{发到的页面可以共性request里面的数?/div>
一般用于用L录的时候根据角色{发到相应的模块等{?/div>

?GET与POSTҎ的区?/p>

HTTP 定义了与服务器交互的不同ҎQ最基本的方法是 GET ?POST。事实上 GET 适用于多数请求,而保?POST 仅用于更新站炏V根? HTTP 规范QGET 用于信息获取Q而且应该?安全的和 q等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话_GET h一般不应生副作用。幂{的意味着对同一 URL 的多个请求应该返回同Ll果。完整的定义q不像看h那样严格。从Ҏ上讲Q其目标是当用户打开一个链接时Q她可以信从自w的角度来看没有改变资源?比如Q新ȝ点的头版不断更新。虽然第二次h会返回不同的一Ҏ闻,该操作仍然被认ؓ是安全的和幂{的Q因为它Lq回当前的新闅R反之亦然。POST h׃那么L了。POST 表示可能改变服务器上的资源的h。仍然以新闻站点ZQ读者对文章的注解应该通过 POST h实现Q因为在注解提交之后站点已经不同了(比方说文章下面出C条注解)Q?br />
在FORM提交的时候,如果不指定MethodQ则默认?GEThQForm中提交的数据会附加在url之后Q以?分开与url分开。字母数字字W原样发送,但空D{换ؓ“+“P其它W号转换?XX,?中XXW号?6q制表示的ASCIIQ或ISO Latin-1Q倹{GEThh交的数据攄在HTTPh协议头中Q而POST提交的数据则攑֜实体数据中;

GET方式提交的数据最多只能有1024字节Q而POST则没有此限制?/p>

?URL与URI的区?/p>

url:同一资源定位W?
uri:同一资源标志W?/p>

url定位客户端连接到服务器所需要的信息Q如
http://www.csdn.net
http://tcc.com:8080/servlet/logon?name=zhangsan&addr=tttt
完整构成
<protocol>://<servername>[:port]/<url-path>[?query-string]

uri是urll成的一部分Q没有域名和查询字符Ԍ
卛_名之后查询字W串之前所有的信息Q用于制定资源?

例如Q对于请求地址
http://java.sun.com/products/servlet/index.html?id=09

url--->http://java.sun.com/products/servlet/index.html?id=09
uri--->/products/servlet/index.html



杲杲 2012-03-11 23:33 发表评论
]]>
վ֩ģ壺 Ӫ| | ¡| °Ͷ| | Ĭ| | | | | | | | | ν| ˮ| ƽԶ| ٰ| | Ͻ| | ϲ| | | Ļ| | | Ϫ| | | | | | ¡| | | | ʡ| | | ٸ|