java基础学习
Java的学习
标签(空格分隔):Java
Java 源程序保存为 .java 文件,编译为 .class 文件。.class 文件由 Java 虚拟机 (JVM)执行0。
添加环境变量
1、下载安装JDK
2、打开安装的目录,找到目录bin打开(D:\Program Files\java\jdk\bin)
3、右键我的电脑,单击属性,单击高级系统设置,单击环境变量
4、下面的系统变量选择path编辑
5、新建将D:\Program Files\java\jdk\bin复制到然后保存
从控制台读取输入
import java.util.Scanner;
Scanner input = new Scanner(System.in);
语法 new Scanner(System.in)表明创建了一个Scanner类型的对象。语法Scanner input 声明input是一个Scanner类 型 的 变 量。整 行 的 Scanner input = new Scanner (System.in)表明创建了一个Scanner对象,并且将它的引用值陚值给变量 input。
final datatype CONSTANTNAME = value;
数值数据类型
(byte,short,int,long),(float,double)
整数直接量
0b,0B表示二进制整数直接量
0表示八进制整数直接量
0x,0X表示十六进制整数直接量
浮点型直接量
通过在数字后面加字母f,F表示该数为float型直接量
通过在数字后面加字母d,D表示该数为double型直接量
一个 float 值有 7 到 8 位小数位,一个 double 值有 15 到17 位小数位
科学计数法1.23456*10^-2 == 1.23456E(e)-2
为了提高可读性,Java允许在数值直接量的两个数字键使用下划线
long ssn = 22_2345_6789
下换线必须置于两个数字之间
在选择结构中,else总是匹配离它最近的if子句
下面的两个代码等价
if(number % 2 == 0)
even = true;
eles
even = false;
boolean even = number % 2 == 0;
逻辑或异^,条件的Boolean相同为false,不同为true。
java里面的switch和c里面一样语法为:
switch(switch表达式):{
case 1:pass;
braek;
case 2:
……
default:默认情况下执行的语句。
switch表达式必须能计算一个char、byte、short、int或者string型值,并且必须总是要用括号括住。
java里面的操作符的优先级
- var++后置操作符
- ++var前置操作符
- (type)(类型装换
- !非
-
- / % 乘法除法
-
-
- 加法减法
-
- < <= > >=比较操作符
- == != 相等操作符
- ^或异
- &&条件与
- ||条件或
- = += ……赋值操作符
查看一个变量的类型
public class NumberToString {
public static void main(String[] agrs){
int number = 100;
String s = number + "";
System.out.println(getType(s));
}
public static String getType(Object o){
return o.getClass().toString();
}
}
格式化输出
System.out.printf(format,item1,item2,……);
格式标识:%域宽度.精度转换码
常用的格式标识符
- %b Boolean值
- %c 字符
- %d 十进制整数
- %f 浮点数
- %e 标准科学计数法形式的数
- %s 字符串
默认是右对齐,域宽前面添加负号转为左对齐
循环,while,do while,for循环语句和c语言相同,continue,break也相同。
方法
修饰符(public static) 返回值类型(void) 方法名(参数列表){
//方法体;
}
在参数列表中要对每一个参数进行独立的数据类型声明
方法重载
在一个类中有两个方法,它们具有相同的名宇,但有不同 的参数列表。Java 编译器根据方法签名决定使用哪个方法。
有时调用一个方法时,会有两个或更多可能的匹配,但是,编译器无法判断哪个是最精确的匹配,这称为歧义调用,歧义调用会产生一个编译错误。
自顶向下的设计和自低向上的实现
一维数组
声明数组变量
elementType[] arrayRefVar;
//元素类型[] 数组引用变量;
不同于基本数据类型变量声明,声明一个数组变量时并不在内存中给数组分配任何空间,它只是创建一对数组的引用的存储位置。如果变量不包含对数组的引用,那么这个变量的值为null。除非数组已经创建,否则不能给它分配任何元素,声明数组变量之后,可以使用下面的语法用new操作符创建数组,并且将它的引用赋给一个变量。
arrayRfeVar = new elemrntType[arraySize];
声明一个数组、创建数组、任何将数组引用赋值给变量三个步骤合并一条语句。
elementType arrayRefVar[] = new elementType[arraySize];
数组初始化语法
elementType[] arrayRefVar = {value0,value1,……,valuek};
public class ArrayPrint {
public static void main(String[] args){
char[] city = {'D','a','c','z'};
System.out.println(city);
}
}
运行结果:Dacz
foreach循环
for(double e:myList){
System.out.println(e);
}
//语法
for(elementType element: arrayRefVar){
//process the element
}
数组的复制
- 使用循环语句逐个地复制数组的元素
- 使用System类中的静态方法arraycopy
- 使用clone方法复制数组
arraycopy(sourceArray, srcPos, targetArray, tarPos,length);
(原数组, 原数组的开始位置, 目标数组, 目标数组的开始位置, 拷贝个数)
可变长参数列表
public static void printMax(double... numbers) ;
Arrays类
java.util.Arrays
- sort或者parallelSort方法对整个数组或部分数组进行排序
char[] chars = {'a','A','4','g','s'};
java.util.Arrays.sort(chars);
java.util.Arrays.sort(chars,1,4);//从chars[1]到chars[4-1]部分排序。
2.equals方法检测两个数组是否相等。返回Boolean值。
3.fill方法填充整个数组或部分数组
java.util.Arrays.fill(list1);
jaba.util.Arrays.fill(list1,1,7,100);//将100添冲到元素list1[1]到list1[7-1]中。就是替换
4.toSring方法来返回一个字符串,改字符串表示数组中所有元素。
public class ArraysFill {
public static void main(String[] args){
int[] list1 = {1,2,3,4};
int[] list2 = {1,2,3,4,5,6};
java.util.Arrays.fill(list1,5);
java.util.Arrays.fill(list2,1,4,7);
System.out.println(Arrays.toString(list1));
System.out.println(Arrays.toString(list2));
}
}
//[5, 5, 5, 5]
//[1, 7, 7, 7, 5, 6]

浙公网安备 33010602011771号