Java第三次作业

本文深入探讨了Java编程中的关键字应用,如synchronized、transient、volatile、strictfp等,详细解释了int与Integer的区别及包装类的作用,并提供了一个快速排序算法的实现示例。此外,还涉及了Java中的数据类型转化、数据结构与算法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java第三次作业
 一.关键字
Synchronized:JAVA语言的关键字,可以用来给对象和方法或者代码块加锁,当它锁定一个方法或者代码块的时候,同一时刻最多只有一个线程执行这个段代码。当两个并发线程访问同一个对象中的这个加锁同步代码快时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而,当一个线程访问对象的一个加锁代码块时,另一个线程仍然可以访问该对象中的非加锁代码块。

Transient:JAVA语言关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。

Volatile:是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会 

Strictfp:即精确浮点,可以 用于类、接口或方法。使用strictfp关键字声明一个方法时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是IEEE 754算法对操作数预期的结果,以单精度和双精度格式表示

Native:标识符native可以与所有其它的java标识符连用,但是abstract除外。一个native method方法可以返回任何java类型,包括非基本类型,而且童谣可以进行异常控制。这些方法的实现体可以自制一个异常并且将其抛出。

二.深入了解int和Integer

int 是基本数据类型

Integer是其包装类,注意是一个类。

为什么要提供包装类呢???

一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。

比如,现在int要转为String

int a=0;

String result=Integer.toString(a);

java中包装类,比较多的用途是用在于各种数据类型的转化中。

我写几个demo

//通过包装类来实现转化的

int num=Integer.valueOf("12");

int num2=Integer.parseInt("12");

doublenum3=Double.valueOf("12.2");

doublenum4=Double.parseDouble("12.2");

//其他的类似。通过基本数据类型的包装来的valueOfparseXX来实现String转为XX

Stringa=String.valueOf("1234");//这里括号中几乎可以是任何类型

String b=String.valueOf(true);

String c=new Integer(12).toString();//通过包装类的toString()也可以

String d=new Double(2.3).toString();

再举例下。比如我现在要用泛型

List<Integer> nums;
 
这里<>需要类。如果你用int。它会报错的 

三.编写一个快速排序的程序 

public class QuickSort {

public static void main(String[] args) {

int[] nums = { 27, 8, 57, 9, 23, 41, 65, 19, 0, 1, 2, 4, 5 };

quickSort(nums, 0, nums.length - 1);

for (int i = 0; i < nums.length; ++i) {

System.out.print(nums[i] + ",");

}

System.out.println("");

}

public static void quickSort(int[] a, int lo0, int hi0) {

int lo = lo0;

int hi = hi0;

if (lo >= hi)

return;

boolean transfer = true;

while (lo != hi) {

if (a[lo] > a[hi]) {

int temp = a[lo];

a[lo] = a[hi];

a[hi] = temp;

transfer = (transfer == true) ? false : true;

}

if (transfer)

hi--;

else

lo++;

}

lo--;

hi++;

quickSort(a, lo0, lo);

quickSort(a, hi, hi0);

}

} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值