900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java基础笔记(入门 语法基础 流程控制 数组)

Java基础笔记(入门 语法基础 流程控制 数组)

时间:2023-11-02 06:19:54

相关推荐

Java基础笔记(入门 语法基础 流程控制 数组)

Java语言入门

发展历程

三大技术体系

JavaSE 标准版JavaEE 企业版JavaME 嵌入式版

Java语言特点

简单性健壮性面向对象分布式多线程动态性可移植性(跨平台)

Java语言怎么实现跨平台

通过jvm虚拟机跨平台,不同平台安装不同版本的;

跨平台的不是Java程序

Java两大核心机制

Java虚拟机机制垃圾回收机制

Java语言运行流程

jdk下载与安装,配置环境变量

/java/technologies/javase-downloads.html

安装时,为了便于管理,新建一个Java文件夹存放jdkjre

配置环境变量

系统变量

JAVA_HOME:选择安装的jdk的路径,不用选择到bin

path:添加 %JAVA_HOME%/bin;

jdk、jre、jvm之间的关系

jdk安装后的文件结构

java、javac、javadoc

javac编译器,将源程序转换成字节码

java运行编译后的Java程序(.class)

javadoc文档生成器,从源码注释中提取文档

常用doc命令

dir列出目录

cls清屏

cd进入目录

开发工具eclipse,优化

修改字体

修改字符编码 -> utf-8

Java语法基础

转义符

public static void main(String[] args) {System.out.println("\b退格");System.out.println("\t水平制表符Tab");System.out.println("\n换行");System.out.println("\f表格符");System.out.println("\r回车");System.out.println("\'单引号\'");System.out.println("\"双引号\"");System.out.println("\\反斜线");}

关键字

(1). 程序中已经被定义好的单词,具有特殊含义,都为小写。

(2).gotoconst,作为保留关键字未被使用

标识符

程序中,自定义的内容(类名、方法名、变量名),都为标识符

命名规则

只能有数字、字母、下划线、$,且不能用数字开头不能使用关键字大小写敏感见名知意

建议

类名每个单词首字母大写 大驼峰

方法名第一个首字母小写 小驼峰

变量所有字母小写

注释

单行注释以//开头 换行结束

多行注释以/*开头 以*/结束

文档注释以/**开头 以*/结束

常量

System.out.println(999);System.out.println(0.23);System.out.println('a');System.out.println("hello");System.out.println(true);// System.out.println(null);

变量

程序运行过程中会发生改变的量

语法格式:数据类型 变量名 = 数据值;

int age = 10;age = age + 1;System.out.println(age);

8种数据类型及其默认值

整型:

byte(字节): 1字节 8位 -128~127(-27~27-1)short(短整型):2字节 16位 -32768~32767(-215~215-1)int(整型): 4字节 32位long(长整型):8字节 64位

浮点型

float(单精度): 4字节 32位double(双精度): 8字节 64位

布尔类型

boolean: 1字节 8位 只有两个值:true、false

字符型

char: 2字节 16位 ‘a’

java中引用数据类型

数组、枚举、类、接口、集合...

数据类型转换

自动转换(隐式转换):将取值范围小的类型自动提升为取值范围大的类型

强制转换(显式转换):将取值范围大的类型强制转换成取值范围小的类型

byte,short,char->int->long->float->double

数据类型转换必须满足以下规则:

(1) 不能对boolean类型进行类型转换;

(2) 不能把对象类型转换成不相关类的对象;

(3) 在把容量大的类型转换为容量小的类型时必须使用强制类型转换;

(4) 转换过程中可以导致溢出或损失精失;

byte a = 45;int s = a + 1;System.out.println("隐式转换byte->int");System.out.println(s);System.out.println(getType(s));System.out.println("强制转换int->byte");byte b1 = (byte) s;System.out.println(b1);System.out.println(getType(b1));System.out.println("隐式转换int->double");int sum = 10;double d = sum + 3.14;System.out.println(d);System.out.println(getType(d));System.out.println("强制转换double->int");int s1 = (int) d;System.out.println(s1);System.out.println(getType(s1));System.out.println("隐式转换char->int");char a1 = 'a';int int1 = a1;System.out.println(int1);System.out.println(getType(int1));System.out.println("强制转换int->char");char c1 = (char) int1;System.out.println(c1);System.out.println(getType(c1));

算术运算符

+、-、*、/、%、++、--

int a = 20;System.out.println(a + 1);System.out.println(a - 1);System.out.println(a * 2);System.out.println(a / 2);System.out.println(a % 3);System.out.println(a++);System.out.println(a--);

赋值运算符

=、+=、-=、*=、/=、%=

int a = 20;a += 10;System.out.println(a);a -= 5;System.out.println(a);a *= 2;System.out.println(a);a /= 5;System.out.println(a);a %= 2;System.out.println(a);

比较运算符

==、>、<、>=、<=、!=

int a = 20;if (a == 20)System.out.println("ok");if (a > 10) {System.out.println("a大于10");}if (a < 5) {System.out.println("a小于5");}if (a >= 10) {System.out.println("a大于等于10");}if (a <= 20) {System.out.println("a小于或等于20");}if (a != 28) {System.out.println("a不等于28");}

逻辑运算符

&&、||、&、|、!

int a = 10;if (a >= 5 && a <= 20) {System.out.println("a处于5至20之间");}if (a != 5 || a < 10) {System.out.println("a不等于5 或者 a小于10");}if (!false) {if (a > 5 & a < 10) {System.out.println("a大于5小于10");}if (a < 5 | a > 10) {System.out.println("a小于5或者a大于10");}}

三元运算符

数据类型 变量名 = 布尔类型表达式?结果1:结果2

int a = 10;char c = a > 5 ? 'a' : 'A';System.out.println(c);

二级制与十进制转换

十进制15 -> 二进制1111二进制1110 -> 十进制148 4 2 1 四位依次相加

流程控制

if…else…语句

int a = 20;if (a > 10) {System.out.println("a>10");} else {System.out.println("a不大于10");}

switch语句

switch(表达式) {case 常量表达式1:语句1;break;case常量表达式2:语句2;break;......case常量表达式n :语句n;break;default: 语句n+1;break;}

int a = 20;switch (a) {case 20:System.out.println("a的值为20");break;default:System.out.println("a的值不等于20,为其他值");break;}

for循环语句

for(初始化语句;判断条件语句;控制语句){循环体语句块;}

int a = 20;for (int i = 0; i < 10; i++) {a += i;}System.out.println("a的值:" + a);

while循环语句

while(判断条件语句){循环体语句块;控制语句;}

int a = 20;while (a < 23) {a++;System.out.println(a);}

do-while语句

do{循环体语句块;控制语句;} while(判断条件语句) ;do-while会先循环一次

int a = 20;do {a++;System.out.println(a);} while (a < 23);

continue

结束当前循环,继续判断for (int i = 1; i <= 10; i++) {if (i == 6) {continue;}System.out.print(i + "\t");}

break

结束当前循环,不再判断for (int i = 1; i <= 10; i++) {if (i == 5) {break;}System.out.print(i + "\t");}

方法

方法就是程序的特殊功能,通常也可以叫函数、功能,方法只能被调用的时候才会执行

语法

修饰符 返回值类型 方法名(形参类型1 形参1,形参类型2 形参2,....){语句;return 返回值;}

修饰符可以有:public(公共的)、private(私有的)、protected(保护的)、default(默认不写的)

返回值类型:可以是基本数据类型和引用数据类型,也可以是无返回值类型void

return:返回值,当返回值是void的时候,return可以不写的

public static int sum(int a, int b) {return a + b;}

重载

重载:在同一个类中,方法名相同,形参类型、参数个数不相同

public static int sum(int a, int b, int c) {return a + b + c;}public static int sum(int a, int b) {return a + b;}

数组

数组:长度是固定的,存储相同类型元素的容器

数组分类

按维度分类

一维数组、二维数组、三维数组

按数据类型分类

基本数据类型数组:

byte、short、int、long、double、float、boolean、char

引用数据类型数组:

类、接口、枚举…

数组的声明(定义)

语法:

数据类型[] 数组名称=new 数据类型[长度];

String[] city1 = new String[3];String[] city2 = new String[] {"北京", "上海", "武汉" };String[] city3 = {"北京", "上海", "武汉" };

数组长度

length属性int[] a = {1, 2, 3, 4, 5 };System.out.println(a.length);

遍历数组

int[] a = {1, 2, 3, 4, 5 };System.out.println(a.length);for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "\t");}

选择排序

//选择排序public static void chooseOrder() {//写一个数组int[] arr = {76, 23, 14, 76, 90, 61 };//写一个最小值元素位置int smallIndex;//遍历for (int i = 0; i < arr.length; i++) {//最小值是smallIndex = i;for (int j = 0; j < arr.length; j++) {if (arr[smallIndex] < arr[j]) {smallIndex = j;if (smallIndex != i) {//写一下临时变量int temp = arr[smallIndex];arr[smallIndex] = arr[i];arr[i] = temp;}}}}//遍历数据for (int x : arr) {System.out.print(x + "\t");}}

冒泡排序

//冒泡排序public static void maoPaoOrder(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}//遍历数据for (int x : arr) {System.out.print(x + "\t");}}

二维数组的语法

数据类型[ ][ ] 变量名称=new 数据类型[一维长度] [二维长度];

二维数组的创建和遍历

int[][] arr1 = new int[1][1];arr1[0][0] = 23;arr1[0][1] = 12;int[][] arr2 = {{23, 12, 89 }, {54, 76, 90 } };int[][] arr3 = new int[][] {{23, 12, 89 }, {54, 76, 90 } };for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println(arr[i][j]);}}

数组工具Arrays

Arrays.sort 数组排序Arrays.equals 比较两个数组是否相等Arrays.binarySearch 在排序好的数组中查找数值Arrays.asList 把数组转换为List

int a[] = {23, 43, 456 };int b[] = {43, 456, 23 };Arrays.sort(a);for (int i : a) {System.out.println(i);}System.out.println(Arrays.equals(a, b));System.out.println(Arrays.binarySearch(a, 456));System.out.println(Arrays.asList(a));

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。