正文
java初始化值代码 java初始化char
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
java定义一个整型数组并初始化,将数组中的最大值与最小值进行交换,并最后将数组输出出来
Java创建int数组,将最大值与最小值位置交换输出,代码以及截图如下:
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int[] num = new int[] { 2, 1, 3, 4, 5 };
int[] temp = new int[num.length];//临时数组 创建是为了重新排序比较大小时不影响原数组顺序
for (int i = 0; i num.length; i++) {
temp[i] = num[i];
}
Arrays.sort(temp);//升序排序
int min = temp[0];//最小值
int max = temp[temp.length - 1];//最大值
for (int i : num) {
//逻辑判断,如果是最小值,输出最大值,否则,相反。
if (i == min) {
System.out.println(max);
} else if (i == max) {
System.out.println(min);
} else {
System.out.println(i);
}
}
}
}
运行示例:
java初始化
java语法规定,成员变量可以不初始化,变量将会根据定义java初始化值代码的类型取类型的默认值,但是局部变量一定要初始化才能被使用java初始化值代码!!!所以,java初始化值代码你的代码只要把
FileInputStream fin;
改成
FileInputStream fin = null;
即可编译通过
Java 变量到底要如何初始化
不同的变量初始化方法不同。
变量包括:
类的属性,或者叫值域
方法里的局部变量
方法的参数
对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。
int类型变量默认初始值为0
float类型变量默认初始值为0.0f
double类型变量默认初始值为0.0
boolean类型变量默认初始值为false
char类型变量默认初始值为0(ASCII码)
long类型变量默认初始值为0
所有对象引用类型变量默认初始值为null,即不指向任何对象。注意数组本身也是对象,所以没有初始化的数组引用在自动初始化后其值也是null。
对于两种不同的类属性,static属性与instance属性,初始化的时机是不同的。instance属性在创建实例的时候初始化,static属性在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化。这个问题会在以后的系列中进行详细讨论。
对于第二种变量,必须明确地进行初始化。如果再没有初始化之前就试图使用它,编译器会抗议。如果初始化的语句在try块中或if块中,也必须要让它在第一次使用前一定能够得到赋值。也就是说,把初始化语句放在只有if块的条件判断语句中编译器也会抗议,因为执行的时候可能不符合if后面的判断条件,如此一来初始化语句就不会被执行了,这就违反了局部变量使用前必须初始化的规定。但如果在else块中也有初始化语句,就可以通过编译,因为无论如何,总有至少一条初始化语句会被执行,不会发生使用前未被初始化的事情。对于try-catch也是一样,如果只有在try块里才有初始化语句,编译部通过。如果在catch或finally里也有,则可以通过编译。总之,要保证局部变量在使用之前一定被初始化了。所以,一个好的做法是在声明他们的时候就初始化他们,如果不知道要出事化成什么值好,就用上面的默认值吧!其实第三种变量和第二种本质上是一样的,都是方法中的局部变量。只不过作为参数,肯定是被初始化过的,传入的值就是初始值,所以不需要初始化。
java静态初始化器 代码一: public class Test { public static int _i; static{ _i = 10;
不一样,代码二的复制是在非静态代码块里面,所以必须要在Test类被实例化(一般是new)的时候才会执行,这个要测试也不难,自己写个main方法直接打印Test._i的值就可以看出不同了
java中怎么数组初始化?
//数组定义最方便的就是用for循环来做定义,数组下标是从0开始,到11的话就是12个数字。要输出的话可以用以//号注释掉的后面的一句if(i12){System.out.println(x[i]);}当然也可以自己再写一个for循环语句来输出,不过我觉得这有点画蛇添足了
public class shuzu {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[]=new int[12];
for(int i=0;i=11;i++)
{
x[i]=i;
//if(i12){System.out.println(x[i]);}
}
}
}
.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
数组名加上下标可以表示数组元素。数组的第一个元素是下标为O的元素,例如points[0]。最后一个元素的下标为length一1,如points[points.1ength一1]。当创建一个数组时,每个元素都被初始化。如前面创建的字符数组s,它的每个值被初始化为O(\0000)。而数组points的每个值被初始化为null,表明它还没指向真正的Point对象。
在赋值语句points[o]= New Point();后,系统创建一个真正的Point对象,并让数组的第一个元素指向它。
注意:包括数组元素在内的所有变量的初始化.从系统安全角度看都是必不可少的任何变量都不能在没有初始化状态下使用。编译器不能检查数组元素的初始化情况。Java允许用初值来创建数组,如例:String names[]={”Georgianna”,“Tenn”,“Simon“,“Tom“};用4个字符串常量初始化names数组,这种方式称为静态初始化,它等价于:String names[];names=new String[4];names[0]=“Georgianna“;names[1]=“JEN”;names[2]=”Simon“;静态初始化可用于任何元素类型,初值块中每个位置的每个元素对应一个引用。
java怎么用一行代码初始化ArrayList
我愿意创建列表的选项,以测试的东西。我正在做:ArrayListString places = new ArrayListString(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); 我重构代码做:ArrayListString places = new ArrayListString(Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 有这样做的更好的方法吗?感谢阅读 ! 解决方法 1: 其实,可能要初始化的"最佳"方式,ArrayList 是你写的方法,因为它不需要创建一个新的 List 以任何方式:ArrayListString list = new ArrayListString(); list.add("A"); list.add("B"); list.add("C"); 渔获是相当多的键入所需,请参阅 list 实例。有如使一个匿名的内部类的一个实例初始值设定项 (也称为一种"双大括号初始化") 的方法:ArrayListString list = new ArrayListString() {{ add("A"); add("B"); add("C"); }} 不过,我不太喜欢该方法,因为什么你最终是一个类的子类 ArrayList 有一个实例初始值设定项和这类只是为了创建一个对象 —— 只是看起来像我有点大材小用。有何好是如果接受 项目硬币收集文本的建议,我们可以有 Java 7 中的列表中文字:ListString list = ["A", "B", "C"]; 不幸的是它不会帮助您在这里,因为它将初始化一个 List,而不是 ArrayList,此外,它尚未提供,如果它以往任何时候都将和。 解决方法 2: 如果你,只是将它声明为列表中没有要 ArrayList,它会更简单呢?ListString places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata"); 解决方法 3: import com.google.common.collect.ImmutableList; .... ListString places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata"); 解决方法 4: 漂亮的很多,最简单的方法就是 ListString strings = new ArrayListString(asList("foo", "bar", "baz")),如果您必须有一个 ArrayList,否则您应该在大多数情况下只是使用ListString strings = asList("foo", "bar", "baz")你说你已宣布作为列表一个 ArrayList 在您的代码中,但您不应该做的除非您正在使用的一些成员 ArrayList 在这并不是 List,例如 ArrayList.ensureCapacity()。通常您应该只是声明变量,您要使用,它的列表通常是最通用接口的 List,和初始化它们在具体的实施,例如 ArrayList 或LinkedList。使用不实现,否则为你会发现您要在多个位置更改,当您想要使用另一种实现的接口。另一个例子将总是声明变量,一个 InputStream 即使它通常是一个 FileInputStream,这是因为一天很快就您或其他人会想要使用一些另类的 InputStream。 解决方法 5: 您可以创建一个工厂方法:public static ArrayListString createArrayList(String ... elements) { ArrayListString list = new ArrayListString(); for (String element : elements) { list.add(element); } return list; } .... ArrayListString places = createArrayList( "S�0�0o Paulo", "Rio de Janeiro", "Brasília"); 但并不比你第一次的重构。更新: 更大的灵活性,它可以是一种通用:public static T ArrayListT createArrayList(T ... elements) { ArrayListT list = new ArrayListT(); for (T element : elements) { list.add(element); } return list; } 解决方法 6: 只是注意到它在一个很简单的工作方法,如下所示: ArrayList arrList = new ArrayList() {"1",2,3,"4" }; ListCustomer listCustomer = new ListCustomer() { new Customer(), new Customer(), new Customer() }; 这C# 3.0 不双支撑所需的工作。希望这有助于。 解决方法 7: 若要设置列表填充 N 的默认对象的副本:ArrayListObject list = new ArrayListObject( Collections.nCopies(1000, new Object()));
关于java初始化值代码和java初始化char的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。