// helloworld 单行注释
/* 多行注释
常量:在程序运行过程中,其值不可以发生改变的值
常量分类:
字符串常量:用双引号括起来的内容 "Hello"
整数常量:不带小数点的数字 77 -99
小数常量:带小数的数字 1.1 -9.99
字符常量:用单引号括起来的内容 'aaa'
布尔常量:布尔值,表示真假 true false
空常量:一个特殊的值 空值 null
*/
public class HelloWorld {
public static void main(String[] args){
System.out.println("helloworld");
System.out.println(77);
System.out.println(-7);
System.out.println(7.7);
System.out.println(-7.8);
System.out.println('二');
System.out.println('a');
System.out.println(true);
System.out.println(false);
// 空常量不能直接输出
// System.out.println(null);
}
}
/*
数据类型:
基本数据类型:
数值型:
整数: 内存占用 取值范围
byte 1 -128~127
short 2 -32768~32767
int(默认) 4 -2的31次方到2的31次方-1
long 8 -2的63次方到2的63次方-1
浮点数:
float 4
负数 -3.402823E+38到-1.401298E-45
正数 1.401298E-45到3.402823E+38
double(默认) 8
负数 -1.797693E+308到-4.9000000E-324
正数 4.9000000E-324-45到1.797693E+308
字符:
char 2 0-65535
字符串:
String
非数值型:
布尔:
boolean 1 true/false
引用数据类型:
类:class
接口:interface
数组: []
*/
// E+38 表示是乘以10的38次方
// E-45 表示是乘以10的负45次方
// 变量:在程序运行过程中,其值可以发生改变的量
/*
变量的声明
数据类型 变量名 = 变量值;
使用: 变量名
修改值: 变量名=修改值;
*/
/*
注意事项
变量名不能重复
变量未赋值的时候,不能使用
long类型的变量定义时,为防止整数过大,后面要加L
float类型的变量定义时,为防止类型不兼容,后面要加F
*/
// 标识符:给类,方法,变量等起名字的符合
/*
标识符的定义规则
由数字,字母,下划线(_)和美元符($)组成
不能以数字开头
不能是关键字
区分大小写
常见命名约定
小驼峰命名法
大驼峰命名法
*/
/*
类型转换
自动类型转换:吧一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
强制类型转换:吧一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量 int k = (int)88.88
*/
自动类型转换表示数据范围从小到大
/*
运算符:对常量或者变量进行操作的符合
表达式:用运算符吧常量或者变量连接起来符合java语法的式子可以称为表达式
不同运算符连接不同的表达式体现的是不同类型的表达式
算术运算符: + - * / %
除法得到的是商,取余得到的是余数
整数操作只能得到整数,要想得到小数必须有浮点数参与
赋值运算符: = += -= *= /= %=
自增自减运算符: ++ --
关系运算符: == != > >= < <=
逻辑运算符: &(有false则false) |(有true则true) ^(相同为false,不同为false) !(取反)
短路逻辑运算符: && ||
三元运算符 : 关系表达式?表达式1:表达式2;
*/
字符的 + 操作
数据输入
import java.util.Scanner; // 引入
public class HelloWorld {
public static void main(String[] args){
Scanner sc = new Scanner(System.in); // 创建对象
int y = sc.nextInt(); //接收数据
System.out.println(y);
}
}
/*
流程控制
顺序结构
没有特定的语法结构,按照代码的先后顺序,依次执行
分支结构
if(y%2==0){
System.out.println("偶数");
}else if(表达式2){
System.out.println("11111");
}else{
System.out.println("奇数");
}
switch(y){
case 1:
System.out.println('1');
break;
case 2:
System.out.println('2');
break;
default:
System.out.println("sss");
break;
}
循环结构:重复做某件事情,具有明确的开始和停止标志
for(int a=0;a<5;a++){
System.out.println("sss");
}
int bb =0;
while(bb<9){
System.out.println(bb);
bb++;
}
do{
System.out.println(bb);
bb++;
}while(bb<9);
*/
/*
死循环
for(;;){}
while(true){}
do{}while(true);
*/
跳转控制语句
Random 随机数
import java.util.Random; // 引入
public class HelloWorld {
public static void main(String[] args){
Random r = new Random(); // 创建对象
int n = r.nextInt(10); // 生成一个随机数,包括0,不包括10
System.out.println(n);
}
}
IDE
// psvm 生成main()方法
// sout 生成输出语句
// Ctrl+Alt+L 格式化
// 数组:是一种用于存储多个相同类型数据的存储模型
// int[] arr 定义一个int类型的数组,数组名称为arr
// int arr[] 定义一个int类型的变量,变量名为arr数组
/*
数组初始化
动态初始化: 初始化时只指定数组长度,由系统为数组分配初始值
int[] arr = new int[3]; // 3为长度
静态初始化: 初始化时指定每个数组元素的初始值,由系统决定数组长度
int[] arr = new int[]{1,2,3};
int[] arr = {1,2,3};
*/
java 内存分配
/*
数组常用操作
数组.length 获取数组长度
*/
/*
方法概述:将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
注意:方法必须先创建才可以使用,该过程称为方法定义
方法创建后并不是直接运行,需要手动使用才执行,该过程称为方法调用
方法传递基本数据类型,形参的改变不会影响实参的改变
方法传递引用数据类型,形参的改变会影响实参的改变
*/
import java.util.Scanner;
public class S {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 创建对象
int x= sc.nextInt(); //接收数据
int y = sc.nextInt(); //接收数据
int xx = demo(x,y);
System.out.println(xx);
}
public static int demo(int x,int y) {
if(x>y){
return x;
}else{
return y;
}
}
}
// Phone类中 // 封装
public class Phone {
String a="aaaaaaaaaaa";
int b=999;
public void setA() {
System.out.println("setA");
}
public void setB() {
System.out.println("setB");
}
}
//
public class S {
public static void main(String[] args) {
Phone p = new Phone();
System.out.println(p.a);
System.out.println(p.b);
p.setA();
p.setB();
}
}
方法执行完毕之后,栈内存会清空执行完毕的方法
// 成员变量:类中方法外的变量
// 局部变量:方法中的变量
// private 使用 // 封装
public class Phone {
private String aa="aaaaaaaaaaa";
private int b=999;
public void setA(String a) {
aa=a;
}
public String getA() {
return aa;
}
}
//
public class S {
public static void main(String[] args) {
Phone p = new Phone();
p.setA("损");
System.out.println(p.getA());
}
}
API:应用程序编程接口
String:字符串
StringBuilder:
// 字符串比较内容是否相同
public class a {
public static void main(String[] args) {
char[] chs = {'a','b'};
String sq = new String(chs);
String a = "ab";
System.out.println(a.equals(sq));
}
}
/*
集合:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList<E>
*/
继承
匿名内部类
toString() 方法建议重写该方法
equals() 比较字符串是否相同,重写
冒泡排序
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d811c6e69ed4d6886e44bf18f03612f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bmz5Yeh44K344Oz44OX44Or,size_20,color_FFFFFF,t_70,g_se,x_16
Collection 集合
数据结构 链表
LinkedList集合的特有功能
HashSet
自然排序
比较器排序
泛型
![在这里插入图片描述](https://img-blog.csdnimg.cn/ee21c66a0b554b118af5c2008995538f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bmz5Yeh44K344Oz44OX44Or,size_20,color_FFFFFF,t_70,g_se,x_16
Map
Map遍历