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);