前言
Java学习的开端可能不是很轻松,万事开头难,Java入门之后你就会感到豁然开朗。我将会从Java的语法基础、面向对象编程、常用类和方法、数据结构…等逐步更新学习笔记。
希望能对你的学习有所帮助!
提示:以下是本篇文章正文内容,Java系列学习将会持续更新
一、基本数据类型
①1字节占的二进制位数是8位,boolean型占的二进制位数是1位
②定义长整型数据
long n = 2021041820210418L; //(√)加L后缀
③整型最值
Integer.MAX_VALUE、Long.MIN_VALUE
④字符串和数值之间的转换
String strl = "1234";
int a = Integer.parseInt(strl);
int number = 2356;
String s = String.valueOf(number);
⑤移位运算
<< 左移
>> 右移
>>>无符号右移
例:
<< 1; //相当于*2
>>1; //相当于/2
二、标准输入、输出
package bao_1;
import java.util.Scanner;
//导入包java.util中的Scanner类
public class Text_01 {
public static void main(String[] args) {
//创建了一个Scanner对象,并且将它的引用值赋值给变量input
Scanner input = new Scanner(System.in);
byte a = input.nextByte(); // -128~127
short b = input.nextShort(); // -32768~32767
int c = input.nextInt(); // -2……~2…… 12位整数
long d = input.nextLong(); // -9……~9…… 19位整数
float e = input.nextFloat(); //
double f = input.nextDouble();//
String s1 = input.nextLine(); //以回车键为结束标志
String s2 = input.next(); //以空白字符为结束标志
input.close(); //关闭input输入流,以释放此流链接的系统资源
//标准输出流
System.out.print("请输入两个数表示测试坐标:");
System.out.println("结果为:" + sum);
System.out.println(String.format("结果为:%.2f",result));
}
}
//多次读入
Scanner input = new Scanner(System.in);
while(input.hasNext()){ //判断下一个元素的有无
int a = input.nextInt();
if(a==45){
System.out.println("yes");
break;
}else{
System.out.println("false");
}
}
通配符导入:通过使用*号作为通配符,导入一个包中的所有类。
import java.util.*;
三、swicth语句
switch(表达式:整型/字符/字符串/枚举) {
//表达式结果指向的是目标值1/目标值2/目标值3
case 目标值1: 执行语句1; break;
case 目标值2: 执行语句2; break;
case 目标值3: 执行语句3; break;
derfault: 执行语句n+1;
}
四、方法
①返回值类型是int
public static int max(int num1,int num2) {
if(num1 > num2)
return num1;
else
return num2;
}
②返回值类型是boolean
public static booblean runnian(int year) {
if((year%400==0)||(year%4==0&&year%100!=0))
return true;
else
return false;
}
③无返回值类型void
public static void sort(int[] s) {
for(int j=s.length-1; j>0; j--)
for(int i=0; i<j; i++)
if(s[i]>s[i+1])
s[i] = s[i]+s[i+1] – (s[i+1]=s[i]);
}
④返回值类型是int[ ]
public static void main(String[] args) {
int[] s1 = getArray(); //得到一个数组,附带元素值
int[] s2 = copyOf(s1); //建立一个数组,复制s1[]的值
.................
}
public static int[] getArray() {
Scanner input = new Scanner(System.in);
System.out.print("请输入6个元素:");
int[][] sr = new int[6];
for(int i = 0; i < sr.length; i++)
sr[i][j] = input.nextInt();
return sr;
}
public static int[] copyOf(int[] s){
int[] x = new int[s.length];
for(int i=0;i<x.length;i++)
x[i] = s[i];
return x;
}
五、数组
①创建及初始化
double[] sr = {1,5,4,6,9};
或者
double[] sr = new double[10];
for(int i = 0; i < sr.length; i++){
sr[i] = input.nextDouble();
}
二维数组
int[][] sr = new int[10];
②字符数组
char[] s = {'a','b','c','d','e'};
或者
char[] s = new char[5];
③字符串数组
String[] str = new String[5];
或者
String[] str = {"jhg","hk","oitrg"};
④for-each 只读性循环,不能修改数据
for(元素类型T 循环元素名O : 循环对象) {
//对O进行操作
}
double[] sr = {1.2,2,3.5,1.6};
for(double i: sr) {
System.out.println(i);
}
六、动态数组
①ArrayList类(该类在java.util包下,需要import)
ArrayList<E> list1 = new ArrayList<>();
E:泛型数据类型,用于设置objectName的数据类型,只能为引用数据类型。
基本类型 | boolean | byte | short | int | long | float | double | char | String |
---|---|---|---|---|---|---|---|---|---|
引用类型 | Boolean | Byte | Short | Integer | Long | Float | Double | Character | String |
可以存放Object的子类:Class、String、Character、Boolean、Number等
②Java 中 ArrayList 和 Vector 同为动态数组,有什么异同?
相同点:
1. 两者都是基于索引的,内部由一个数组支持;
2. 两者都维护插入的顺序,可以根据插入顺序获取元素;
3. ArrayList 和 Vector 都允许 null 值,也可以使用索引值对元素进行随机访问;
不同点:
1. Vector 是同步的,而 ArrayList 不是,如果需要在迭代的时候对列表进行改变吗,应该使用 CopyOnWriteArrayList;
2. ArrayList 比 Vector 快,也不会过载;
3. ArrayList 更通用,可以使用 Collection 工具类更轻易地获取同步列表和只读列表;
③Java 中为什么不建议使用Vector?
- 因为vector是线程安全的,所以效率低,这容易理解,类似StringBuffer
- Vector空间满了之后,扩容是一倍,而ArrayList仅仅是一半
- Vector分配内存的时候需要连续的存储空间,如果数据太多,容易分配内存失败
- 只能在尾部进行插入和删除操作,效率低
总结
提示:这里对文章进行总结:
以上就是今天的学习笔记,本文介绍了Java的基础语法,是基于有C语言基础的情况下做的一些总结,所以不是很详细。