java基础应用学习

重定向输出流实现程序日志

SYStem类中的out成员变量式Java的标准输出流,程序常用它来输出调试信息,out成员变量被定义为final类型的,无法直接重新复制,可以通过setOut()方法来设置新的输出流。
本实例利用该方法在这里插入图片描述
本实例使用了该方法实现了输出流的重定向,把他只想一个文件输出流,从而实现日志功能。运行过程中一些输出出保存到了日志文件中‘

关键技术

System类的setOut()方法改变输出流,System类中的out,err,in成员变量都可以使用该方法:
setOut方法
该方法用于重新分配System类的标准输出流。该方法的声明如下:

public static void setOut(printStream  out)
out:新的printStream输出流对象

setErr方法
该方法用于重新分配System类的标准错误输出流。该方法的声明如下:

public static void setErr(printStream  err)
out:新的printStream输出流对象

setOut方法
该方法用于重新设置System类的in 成员变量。 即标准的输入流。

运算符

BigDecima类,用于大数字的精确计算。
乘法运算:
1.*
2,BigDecimal类的multiply()方法,
3,对接收的整数执行位运算的左移操作。

实现两个变量的互换(不借助第3个变量)

变量互换常见于数组排序算法中,会使用一个临时变量来完成互换。临时变量的创建增加了系统资源的消耗。如果需要交换的时两个整数类型的变量,那么可以利用更高效的方法。
注意:inputStream输入流以字节为单位获取数据,而且对于需要复杂的判断并创建字节数组作为缓冲,最主要的是字节转换为字符时容易出现中文乱码的情况,所以对于字符数据的读取,应该使用扫描器进行封装,然后获取字符串类型的数据。


package learning;

import java.util.Scanner;

public class VariableExchange {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan =new Scanner(System.in);   //创建扫描器
		System.out.println("请输入变量A的值");
	    long A=scan.nextLong();
	    System.out.println("请输入变量B的值");
	    long B=scan.nextLong();
	    System.out.println("A="+A+"\tB="+B);
	    System.out.println(" z执行变量互换..." );
	    A=A^B;
	    B=B^A;
	    A=A^B;
	    System.out.println("A="+A+"\tB="+B);
	}
}

异或”“和其他位运算符并不会改变变量本身的值,即"AB"没有任何意义,必须将运算结果赋值给一个变量。

foreach循环优于for循环

foreach是for循环遍历数据的一种简写格式,使用的关键字依然是for,但是参数格式不同。只用于遍历数据集合或数组,语法格式如下:

for (Type e:collections){
//对变量e的使用
}
参数说明:
e :其类型Type是集合或数组中元素值的类型,该参数是集合或数组collections中的一个元素。
collections :要 遍历的集合或数组,也可以是迭代器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值