1. java 怎樣傳遞int或者float參數給double形參
你可以直接用這個方法, int和float會自動轉換成double型, 你可以直接傳入int和float型的參數
int a=1;
float b=1f;
double c=1;
new 類名.function(a, b, c)不會出錯的
2. java是值傳遞
int是一個基本類型
Integer是一個int的包裝類(Integer類包含一個int值)
簡單來說:
只要記住int是變數,而Integer是類即可
例如:
int i;
i=6; //這里只是給i賦值為6
Integer i=new Integer(6); //這里不僅給i賦值為6,而且i成為Integer的對象,得到了這個類的所有可用方法
Integer其實是int的對象形式。有時侯一個參數只接收對象,而不接收基本類型,則通常的做法是把這個基本類型轉化為對象,這時候就需要用到對象包裝類了。比如int對應的就是Integer。包裝類還有許多,每一個基本類型都有相對應的一個包裝類。
所以,你那樣說,也是可以的
3. Java 怎樣傳遞int或者float參數給double形參
可以用方法重載,比如定義public
double
function(int
a,int
b,flooat
c),裡面把參數改成double後再調用原來的
public
double
function(double
a,double
b,double
c){
……}
4. Java當中int是一個類嗎=。為什麼int是拷貝傳遞,而string,類對象都是指向一個對象
int是基本類型,基本類型不存在引用,所有基本類型的=都是直接操作變數本身
Java 8大基本類型:byte, boolean, short, char, int, float, long, double
5. 關於java方法參數是值傳遞還是地址傳遞
JAVA傳遞參數有兩種方式:值傳遞和引用傳遞值傳遞是傳遞數據:如基本數據類型都是值傳遞引用傳遞是把形參和實參的指針指向了堆中的同一對象,對象的引用和數組的引用。實參,Java的基本數據類型,如int,double等在函數的參數傳遞時,傳遞的是
6. java在函數調用時怎麼「傳int的引用」
[java] view plain
public class TestFun {
public static void testInt(int i){
i=5;
}
public static void main(String[] args) {
int a=0 ;
TestFun.testInt(a);
System.out.println("a="+a);
}
}
程序執行結果:a=0 。
(二)對象類型參數:傳引用,方法體內改變形參引用,不會改變實參的引用,但有可能改變實參對象的屬性值。
舉兩個例子:
(1)方法體內改變形參引用,但不會改變實參引用 ,實參值不變。
[java] view plain
public class TestFun2 {
public static void testStr(String str){
str="hello";//型參指向字元串 「hello」
}
public static void main(String[] args) {
String s="1" ;
TestFun2.testStr(s);
System.out.println("s="+s); //實參s引用沒變,值也不變
}
}
執行結果列印:s=1
(2)方法體內,通過引用改變了實際參數對象的內容,注意是「內容」,引用還是不變的。
[java] view plain
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Test {
public void a(Map a,String b)
{
a.put("test", b);
}
public void b()
{
Map a = new HashMap();
a.put("test", "a");
String b = "b";
//printMap(a);
a(a,b);
printMap(a);
}
public void printMap(Map a)
{
Set set = a.entrySet();
Iterator it = set.iterator();
while(it.hasNext())
{
Map.Entry e = (Map.Entry)it.next();
System.out.println("Key:"+e.getKey()+" Value:"+e.getValue());
}
}
public static void main(String avgs[])
{
Test t = new Test();
t.b();
}
}
執行結果,列印:Key:test Value:b 。可見在方法a()內改變了實參的內容。
(3)第二個例子是拿map舉例的,還有經常涉及的是 StringBuffer :
[java] view plain
public class TestFun4 {
public static void testStringBuffer(StringBuffer sb){
sb.append("java");//改變了實參的內容
}
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("my ");
new TestFun4().testStringBuffer(sb);
System.out.println("sb="+sb.toString());//內容變化了
}
}
執行結果,列印:sb=my java 。
所以比較參數是String和StringBuffer 的兩個例子就會理解什麼是「改變實參對象內容」了。
總結:
第一:java方法基本數據類型是傳值,對象類型傳引用,這是千真萬確的。
第二:當參數是對象時,無論方法體內進行了何種操作,都不會改變實參對象的引用。
第三:當參數是對象時,只有在方法內部改變了對象的內容時,才會改變實參對象內容。
7. 怎樣實現將java基本類型(像是int,double)的實參傳遞也就是在方法里改變值,會影響原來的值。
java並不支持基本類型的實參傳遞。如果一定要用基本類型,你可能要靠率是不是把結果作為方法的返回值,而不是通過參數來傳遞。
另外一個方法就是不要使用基本類型,而是用基本類型對應的類。
例如,int在java裡面對應了Integer,double對應Double的類的類型。這都是內置好的。
比如
public static void foo(Integer i)
{
// i 是作為一個對象傳遞進來的。
i = i + 1;
}
// 使用的時候
Integer i = 10;
foo(i);
int n = i + 1; // java可以自動完成int和內置Integer類型的轉換。
最後結果n = 11.
8. java傳遞int數組到c++
你用哪種方法在java/c++之間通信得?服務介面,JNI?
9. java值傳遞和地址傳遞
JAVA傳遞參數有兩種方式:值傳遞和引用傳遞
值傳遞是傳遞數據:如基本數據類型都是值傳遞
引用傳遞是把形參和實參的指針指向了堆中的同一對象,對象的引用和數組的引用。
實參,Java的基本數據類型,如int,double等在函數的參數傳遞時,傳遞的是副本。String也屬於這一范疇。
形參,而如果是對象,則傳遞的是引用。
如下代碼實例:
{
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
personp=newperson();
p.name="ken";
p.age="12";
reset(p);//傳遞的是p的指針地址,方法裡面在對p的屬性進行修改,方法結束後影響依然存在。
Stringname=p.name;
Stringage=p.age;
System.out.println(name+age);
//name=gg,age=223
setContentView(R.layout.main);
}
privatevoidreset(personap){
ap.name="gg";
ap.age="223";
} classperson{
Stringname;
Stringage;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetAge(){
returnage;
}
publicvoidsetAge(Stringage){
this.age=age;
}
}