Java日常避坑

JAVA的日常避坑选择

1.数组的名字相当于一个指针,数组的内容是通过数组名字使用指针进行链接。
当两个数组直接进行相等操作,相当于两个数组的指针指向了同一个地方,这是使用指针会直接改变原数组存储的内容。
要实现数组的拷贝只能笨重的进行一对一的开辟新的区域进行拷贝。

int a[]={1,2,3,4,5},b;

b=a;
b[0]=10;
System.out.println("a[0]"+a[0]);
int []a= {1,2,3,4,5,6};
int []b= new int[6];
		
		
for (int i=0;i<a.length;i++)
{	
	b[i]=a[i];
}
b[0]=888;
System.out.println(a[0]);
System.out.println(b[0]);
		

通过行进行数组的遍历

int[][] arraya= {{1,2,3},{4,5,6},{7,8,9}};
	for(int[] rows:arraya)
	{
		for (int item:rows)
		{
			System.out.print(item+" ");
			
		}
		System.out.println();
	}

强制转换的格式

数据类型 名字=(新的数据类型) 名字

注:byte,short进行相加的时候,先会转换成int类型相加。

java读取单个字符的操作是什么

方法一:使用读取字符串的操作从而读取第一个字符作为单个字符
//此方法是最为常用的方法


		Scanner scan=new Scanner(System.in);
		char name=scan.next().charAt(0);
		System.out.print(name);

方法二:使用System.in.read()读取第一个字符的对应的ascii码值,在使用强制转换将其转换成对应的字符

Scanner scan=new Scanner(System.in);
		int num=System.in.read();//读取第一个字符的对应的码值
		char name=(char) num;//强制类型转换
		System.out.print(name);

java进行多个字符串拼接输出

1.Java在进行多个字符串拼接输出的时候容易存在隐式转换,也就是当他的数字和字符相遇会转换成数字的相加,但是如果要转换成字符串的拼加,可以在输出语句开头加上 “” 用来告诉计算机这是处理的是字符串的拼接。

result=num1/num2;
			System.out.print(""+num1+name+num2+'='+result);
			break;

java保留数字的操作

当使用Java进行数字保留的操作,可以和c的操作相同
使用(此操作是进行了四舍五入的操作而没有直接进行数字的舍弃)

  System.out.printf("%.nf",num);
  //n为保留的几位小数数字
  //num为要保留的数字

或者使用已有的模块

  */
        public void m2() {
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println(df.format(f));
        }

Java开辟对象数组的操作

Student s[]=new Student[num];//创建新的学生对象
//注意从此处的创建并不是连带着将Student类的具体内容空间给创造出来,而是仅仅创造了num个数组对象的名称内容的空间		
		for(int i=0;i<num;i++)
		{	
			s[i]=new Student();//此处是将每个学生对象开辟出其相应的类的所需要的空间
			
			s[i].name=scan.next();//读取名字
			
			s[i].score=scan.nextInt();//读取他们的分数
		}

类的构造

1.在类的构造中默认初始化进行类的赋值
(构造一个类的赋值函数进行相应的操作)

2.一旦创建一个带有参数的类的方法赋值,则默认的类的赋值就不再存在!

public class Rctangle{

double width;
double weight;
//空的类
Rectangle()
{

}
//最常见的构造赋值方法
Rectangle(double width,double weight)
{
	this.width=width;
	this weight=weight;
}
double area()
{
	return this.width*this weight;
}

3.当对数据使用封装private后,要使用get或者set方法设置接口进行参数的传递(创建的实质是一个函数)

4.当直接输出一个类的对象时,会默认调用类里面的toString的默认函数,这个时候可以进行函数的重载进行输出相关的类名里面相关的信息

public String toString()
	{
		return ""+name+":"+num;
	}

对再Java中使用三角形计算面积时使用的Π

使用Math.PI使用三角形定义的面积常量

Java中format()函数的使用

String.format("字符串""对应你替换的内容")
//其中字符串中使用%进行占位,同时后面紧跟相应的替换类型,同py,c,c++相应的用法

//但是当使用%f时输出会保留多位小数,这是输出可以将其指定为%s




java中随机数的常见操作

1.使用Random的类,进行对整数进行随机数的操作

import java.util.Random;
Random rd=new Random();
		
		for (int i=0;i<8;i++)
		{
			System.out.println(rd.nextInt(56));
		}

注意其中nextInt(), nextFloat(), nextLong(), nextBoolean()分别代表着生成对应的
整数,float浮点数,Double浮点数,布尔型的随机数

其中 使用nextInt(n)要注意生成的是[0,n)的随机数
使用nextLong()%n生成的是(-n,n)之间的随机数

2.使用Math.abs()函数可以将函数范围固定生非负的数字

Math.abs(nextLong()%n)
//生成的是[0,n)的Double的浮点型数字

java中类的静态成员的static的声明

1.静态数据成员

//方法一:
static int num=0;
//方法二:
static int num;
int row;
classname()
{
	num=0;
	row=1;
}

1.以上是最常见的两种进行声明的方法。
当存在static时,所有对象都可以共享这个静态数据成员并且修改,而实例数据成员在创建每一个对象的时候会创建每一个数据的副本
2.静态数据成员可以使用类名或者是实例化的对象名进行调用

2.静态方法
在方法前使用static修饰符进行修饰

class name{
	static void f(){}
}

使用包的方法

1.import语句进行引用

import 包名.*;

相当于全部引用包名内的所有类

2.packagename classname 实例化对象名称=new package();

1).同一个包中的类可以互相访问
2).不同包之间的类进行访问的时候需要使用import 进行引用申请

String类的忽略大小写的函数

equalsIgnoreCase(string object);

Scanner输出流的nextLine()

**Scanner的输出流的nextLine()**会读取上一行未被读取的'\n'换行符,因此可能会存在一些未输出直接读取的问题,因此我们如果要解决这个问题,我们必须要要先设一个空间读取上一行未被读取的在'\n'换行符

解决方法

Scanner Scan=new Scanner(System.in);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值