java的常用引用类、数组、String类

                         java的常用引用类、数组、String类


1. 常用引用类

1.1 Scanner 

                      一个简单的文本扫描器类。

                      使用:

                                 //创建扫描器对象

                                 Scanner sc = new Scanner(System.in); 

                                 //接收用户输入字符串类型的数据              

                                 String str = sc.next();

                                 //接收用户输入整数类型的数据          

                                 int num = sc.nextInt();  

                                 //接收用户输入小数类型的数据 

                                 double d = sc.nextDouble();

Scanner sc = new Scanner(System.in);
System.out.print("请输入姓名:");
//输入姓名
String name = sc.next();		
//输入年龄 
System.out.println("请输入年龄 :");
int age = sc.nextInt();
//输入工资 
System.out.print("请输入工资:");
double salary = sc.nextDouble();
//输出
System.out.println("姓名:"+name+",年龄:"+age+",工资:"+salary);

1.2 Random

                      该类的实例用于生成伪随机数的流。

使用:

           //创建Random对象           

           Random rand = new Random();

           //0~9 任意一个整数  [0,10)

           int n = rand.nextInt(10);

            //0.0-1.0任意一个double数[0.0,1.0)

           double d =rand.nextDouble();

Random rand = new Random();
//生成0~9 任意一个
int n = rand.nextInt(10); 
//生成0.0~1.0 任意一个double数
double d =rand.nextDouble(); 
System.out.println(n);
System.out.println(d);

1.3 Math

                      Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。

                      常用值与函数:

函数描述
Math.random返回0,1之间的一个随机数
Math.max求两数中最大 
Math.min求两数中最小 
Math.sqrt求开方 
Math.ceil得到不小于某数的最大整数 
Math.floor得到不大于某数的最大整数 
Math.rint  求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round同上,返回int型或者long型(上一个函数返回double型) 
Math.exp求e的任意次方 
Math.log10以10为底的对数 
Math.log自然对数
Math.pow求某数的任意次方, 抛出ArithmeticException处理溢出异常
Math.PI记录的圆周率
Math.E记录e的常量 
Math.abs求绝对值 
Math.sin正弦函数
Math.asin反正弦函数 
Math.cos余弦函数
Math.tan正切函数
Math.toDegrees弧度转化为角度
Math.toRadians角度转化为弧度 
Math.IEEEremainder求余 

                      使用:  //double类型的数据,[0.0,1.0)

           Math.random(); 

double d = Math.random();   
//生成0-1的整数
double random = Math.random();
System.out.println(random);
//生成1-10的整数
int n = (int)(Math.random()*10)+1;
System.out.println(n);

 

2.0 数组

数组概念:可以存储一组相同类型的数据。

2.1 一维数组

                      语法:(1)类型[]  数组名; 

                                 (2)类型  数组名[];

                      静态初始化:(1)类型[] 数组名 = new 类型[]{值1,值2,…};

                                            (2)类型[] 数组名 ;

                                                     数组名 = {值1,值2,…};

                      动态初始化:类型[] 数组名 = new 类型[长度];

                                           必须要添加长度,一旦分配长度,该数组的空间是不可改变的;赋值:可以通过下标给数组赋值;元                                        素的个数:length可以获取数组中元素的个数

                      注意事项:(1)数组中下标是从0开始

                                        (2)空指针异常:java.lang.NullPointerException

                                        (3)索引越界异常:java.lang.ArrayIndexOutOfBoundsException

                     数组的操作:(1)求最大值     

int array[] = new int[] {11,55,22,99,88}; 
//最大值 
int max = array[0];
//遍历数组
for(int i=1;i<array.length;i++) {if(max<array[i]) {max=array[i];}
}
System.out.println("最大值 :"+max);

                                           (2)最小值

int array[] = new int[] {11,55,22,99,88}; 
//最小值 
int min = array[0];
//遍历数组
for(int i=1;i<array.length;i++) {if(min > array[i]) {min = array[i];}
}
System.out.println("最小值 :"+ min );

                                           (3)求和

int array[] = new int[] {11,55,22,99,88}; 
//数组中的和 
int sum = 0;
//遍历数组
for(int i=0;i<array.length;i++) {sum += array[i];
}
System.out.println("数组的和 :"+ sum );

                                           (4)平均值

int array[] = new int[] {11,55,22,99,88}; 
//数组中的和 
double sum = 0;
//遍历数组
for(int i=0;i<array.length;i++) {sum += array[i];
}
//平均值
double avg = sum/array.length;
System.out.println("数组的平均值 :"+ avg );

                                           (5)复制

//旧数组
int[] array = new int[]{11.55.88.33.66.22}
//新数组
int[] newArray = new int[array.length];
//遍历旧数组
for(int i=0;i<array.length;i++) {newArray[i]=array [i];
}

                                           (6)反转

int array[] = new int[] {11,55,22,99,88}; 
System.out.println("反转前:");
for(int i=0;i<array.length;i++) {System.out.print(array[i]+"  ");
}
//遍历数组
for(int i=0;i<array.length/2;i++) {//交换位置array[array.length -1 -i] = array[i]^array[array.length -1 -i];array[i] = array[array.length -1 -i]^array[i];array[array.length -1 -i] = array[array.length -1 -i]^array[i];
}
System.out.println("反转后:");
for(int i=0;i<array.length;i++) {System.out.print(array[i]+"  ");
}

                                           (7)冒泡排序

int array[] = new int[] {11,55,22,99,88}; 
//遍历数组
for(int i=0;i<array.length -1;i++) {for(int j = 0;j < array.length - 1;j++) {if(array[j] > array[j+1]){array[j+1] = array[j+1]^array[j];array[j] = array[j+1]^array[j];array[j+1] = array[j+1]^array[j];}}
}
System.out.print("按从小到大顺序:" );
for(int i=0;i<array.length;i++) {System.out.print(array[i]+"  ");
}

                                           (8)选择排序

int array[] = new int[] {11,55,22,99,88}; 
//遍历数组
for(int i=0;i<array.length -1;i++) {int z = i;for(int j = i+1;j < array.length;j++) {if(array[z] > array[j]){z = j;}}if(z != i) {array[z] = array[z]^array[i];array[i] = array[z]^array[i];array[i] = array[z]^array[i];}
}
System.out.print("按从小到大顺序:" );
for(int i=0;i<array.length;i++) {System.out.print(array[i]+"  ");
}

2.2 二维数组

                      语法:(1)类型[][]  数组名;

                                 (2)类型  数组名[][];

                      静态初始化:(1)类型[][]  数组名 = new 类型[][]{{值1,值2},{值3,值4}…};

                                            (2)类型[][] 数组名 ;

                                                     数组名 = {{值1,值2},{值3,值4}…};

                      动态初始化:类型[][] 数组名 = new 类型[长度1][长度2];

                      注意:二维数组可以看作行或列,由于数组的下标起始值为 0,因此行和列的下标需要减 1。

                      二维数组的操作:(1)获取单个元素

int[][] array = {{1,2},{3,4,5},{6,7,8,9}};
//打印数组的行数
System.out.println(arr.length);
//打印数组第2行的拥有的元素即列数
System.out.println(arr[1]);//打印数组第1行第2列的元素 
System.out.println(arr[0][1]);  

                                                   (2)获取整行元素

int[][] array = {{1,2},{3,4,5},{6,7,8,9}};
Scanner scan=new Scanner(System.in);
System.out.println("当前数组有"+array.length+"行,请输入您要查看的行数:");
int num =scan.nextInt();
for(int i=0;j<array[num-1].length;i++) {System.out.println("第"+num+"行的第["+i+"]个元素的值是:"+array[num-1][i]);
}

                                                   (3)获取整列元素

int[][] array = {{1,2},{3,4,5},{6,7,8,9}};
Scanner scan=new Scanner(System.in);
System.out.println("请输入您要获取的列:");
int num=scan.nextInt();
for(int i=0;i<array.length;i++) {System.out.println("第 "+(i+1)+" 行的第["+num+"]个元素的值是"+array[i][num]);
}

                                                   (4)遍历

int[][] array = {{1,2},{3,4,5},{6,7,8,9}};
//遍历二维数组 
for(int i=0;i<arr.length;i++) {for(int j=0;j<arr[i].length;j++) {System.out.print(arr[i][j]+"  ");}
}

 

3 String

String类代表字符串, 字符串不变,它们的值在创建后不能被更改

StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。tringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

String s1 = "abc";		
s1+="bcd";  //重新开辟空间
//synchronized
StringBuffer buf  =new StringBuffer("abc");
buf.append("bcd");
//效率高
StringBuilder str = new StringBuilder("abc");
str.append("bcd");  //不会开辟新空间
System.out.println(s1);  //abcbcd
System.out.println(str.toString());
//StringBuilder>StringBuffer>String  效率高到底

字符串在内存中是以字符的方式存储的。

String str = "abc";相当于: char data[] = {'a', 'b', 'c'};String str = new String(data);

字符串的比较见如下代码:

public static void main(String[] args) {String s1 = "abc";String s2 = "abc";String s3 = new String("abc");//== 地址//equals比较字符串,比较每个字符System.out.println(s1==s2);   //trueSystem.out.println(s1==s3);   //falseSystem.out.println(s1.equals(s3));  //trueString s4 ="ab"+"c"; //编译时确定String s5  ="ab"+ new String("c");  //运行时确定String s6 ="ab";String s7 = "c";String s8 =s6+s7;System.out.println("=======================");System.out.println("s4==s1:"+(s4==s1));  //trueSystem.out.println("s5==s1:"+(s5==s1));  //falseSystem.out.println("s8==s1:"+(s8==s1));  //false//String s9 = s8.intern();  //在常量池地址System.out.println("s9==s1:"+(s8.intern()==s1));   //trueSystem.out.println(s8.equals(s5));  //true
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json-ajax-jsonp-cookie

json json是 JavaScript Object Notation的首字母缩写&#xff0c;单词的意思是javascript对象表示法&#xff0c;这里说的json指的是类似于javascript对象的一种数据格式&#xff0c;目前这种数据格式比较流行&#xff0c;逐渐替换掉了传统的xml数据格式。 json是轻量级,易解…

LeetCode 981. 基于时间的键值存储(哈希+二分查找)

文章目录1. 题目2. 解题1. 题目 创建一个基于时间的键值存储类 TimeMap&#xff0c;它支持下面两个操作&#xff1a; set(string key, string value, int timestamp) 存储键 key、值 value&#xff0c;以及给定的时间戳 timestamp。 get(string key, int timestamp) 返回先…

java的类与对象

java的类与对象 1 面向对象 1.1 面向对象与面向过程的区别 面向过程和面向对象都是解决问题的逻辑方法&#xff0c;面向过程是强调解决问题的步骤&#xff0c;可以先定义多个函数&#xff0c;在使用的使用调用函数即可&#xff1b;面向对象把问题分解成多个对象&#xff0c;…

学车总结

学车总结&#xff1a; 1、左脚离合&#xff0c;右脚油门和刹车。2、左脚脚跟着地&#xff0c;用脚尖控制离合。3、踩离合要快&#xff0c;松要慢点&#xff1b;刹车刚好相反。4、平时不要猛打方向盘&#xff0c;轻微调整就行&#xff0c;需要拐急弯要降低车速。5、换挡时需要将…

建设网站需要的Bootstrap介绍与操作

01-流体布局 流体布局,就是使用百分比来设置元素的宽度,元素的高度值固定, calc()&#xff1a;可以通过计算的方式给元素添加尺寸,比如:width:calc(25%-4px); box-sizing&#xff1a;content-box默认的盒子计算方式 2.border-box 盒子的计算方式从边框开始,盒子的尺寸,边框和…

04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换

文章目录1. 什么是人脸识别2. One-Shot学习3. Siamese 网络4. Triplet 损失5. 人脸验证与二分类6. 什么是神经风格迁移7. 深度卷积网络在学什么8. Cost function9. Content cost function10. Style cost function11. 一维到三维推广作业参考&#xff1a;吴恩达视频课深度学习笔…

java的封装,继承,多态

java的封装&#xff0c;继承&#xff0c;多态 1 封装 1.1 封装 指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障&#xff0c;防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据&#xff0c;必须通过严格的…

详解一个自己原创的正则匹配IP的表达式

第一种方法&#xff08;可以匹配有点毛病&#xff09;&#xff1a;检测IP地址的正则表达式 正则表达式&#xff1a; ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 红色块代…

亚洲赛前训练计划

回顾和加深所学算法。 主要回顾用途及使用方法。 图论方面&#xff1a; 1.dfs,bfs 2.强连通&#xff0c;点双连通&#xff0c;边双连通&#xff0c;2-sat 3.匈牙利算法km,以及不等式解 4.网络流&#xff0c;费用流 5.最短路&#xff0c;SPFA&#xff0c;dijstra, floay,斯坦纳树…

天池在线编程 2020年9月26日 日常周赛题解

文章目录1. K步编辑2. 折纸3. 字符串的不同排列4. 硬币排成线题目地址&#xff0c;请点这 1. K步编辑 给出一个只含有小写字母的字符串的集合以及一个目标串(target)&#xff0c;输出所有可以经过不多于 k 次操作得到目标字符串的字符串。 你可以对字符串进行一下的3种操作:…

JavaScript试题练习题

1. 我们可以在下列哪个HTML元素中放置javascript代码&#xff1f; A.< script > B.<javascript > C.< js > D.<scripting > ★标准答案&#xff1a;A 2. 预测以下代码片段的输出结果: var str alert(typeof str); A.. string B..un…

Java的static,final,代码块,内部类,抽象类,接口等

Java的static&#xff0c;final&#xff0c;代码块&#xff0c;内部类&#xff0c;抽象类&#xff0c;接口等 1 static关键字月final关键字 1.1 static static表示静态。可以修饰属性&#xff0c;方法&#xff0c;代码块内部类等&#xff0c;总结如下&#xff1a; 特点修饰属…

使用parted划分GPT分区(转)

parted命令可以划分单个分区大于2T的GPT格式的分区&#xff0c;也可以划分普通的MBR分区&#xff0c;fdisk命令对于大于2T的分区无法划分&#xff0c;所以用fdisk无法看到parted划分的GPT格式的分区。 Parted 命令分为两种模式&#xff1a;命令行模式和交互模式。 1、命令行模式…

04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换(作业:快乐屋人脸识别+图片风格转换)

文章目录作业1&#xff1a;快乐房子 - 人脸识别0. 朴素人脸验证1. 编码人脸图片1.1 使用卷积网络编码1.2 Triplet 损失2. 加载训练过的模型3. 使用模型3.1 人脸验证3.2 人脸识别作业2&#xff1a;神经风格转换1. 问题背景2. 迁移学习3. 神经风格转换3.1 计算内容损失3.2 计算风…

javascript练习题

1.用typeof bar”object”判断bar是否是一个object的潜在缺陷是什么&#xff1f;怎样才能避免这种缺陷&#xff1f; 答&#xff1a;尽管用typeof bar”object”是一个判断bar是一个object的可靠方法&#xff0c;但是令人惊讶的是&#xff0c;在JavaScript中null也是一个object!…

Maven3路程(三)用Maven创建第一个web项目(1)

一.创建项目 1.Eclipse中用Maven创建项目 上图中Next 2.继续Next 3.选maven-archetype-webapp后&#xff0c;next 4.填写相应的信息&#xff0c;Packaged是默认创建一个包&#xff0c;不写也可以 5.创建好项目后&#xff0c;目录如下&#xff1a; 至此&#xff0c;项目已经创建…

java基础之设计模式

1 设置模式之单例设计模式 概念&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 &#xff08;1&#xff09;饿汉式&#xff1a; /*** Description 饿汉式* author refuel* version v1.0*/ public class TestSingleton{public static void ma…

数组排序(冒泡、排序)

目前对于数组的排序有主要的两种&#xff0c;一种是选择排序&#xff0c;一种是冒泡排序。当然大学学过数据结构的知道&#xff0c;还有一些其他的排序&#xff0c;这里就不说明了&#xff0c;有时间自己上网查查。其实排序在开发中并不常用&#xff0c; 我们学习它是学一种思想…

LeetCode 1598. 文件夹操作日志搜集器

文章目录1. 题目2. 解题1. 题目 每当用户执行变更文件夹操作时&#xff0c;LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明&#xff1a; "../" &#xff1a;移动到当前文件夹的父文件夹。如果已经在主文件夹下&#xff0c;则 继续停留在当前文…

Java集合Set,List和Map等

Java集合Set,List和Map等 1 Java集合框架 因为Java是面向对象的语言&#xff0c;对事物的体现都是以对象的形式&#xff0c;为了方便对多个对象的操作&#xff0c;就要对对象进行存储。另一方面&#xff0c;使用Array存储对象方面具有一些弊端 。Java集合就像一个容器&#x…