
hello,World!
hello,World!
hello,World!
hello,World!
分割线姚文睿学java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXWnOjJs-1651326229913)(F:322861.jpg)]
超链接点击跳转到博客
列表(-加回车)
| 名字 | 性别 | 生日 |
|---|---|---|
(```)
计算机 计算机硬件组成
DOS(Disk Operating System),Windows,Linux,Unix,Mac,Android,iOS
应用软件WPS,QQ,微信,英雄联盟,绝地求生等
打开CMD的方式 打开方法选择以管理员方式运行
常用Dos命令#盘符切换 磁盘名:
#查看当前目录下的所有文件 dir
#切换目录 cd /d 磁盘名:
#cd ..
#清楚屏幕 cls (clear screen)
#退出终端 exit
#查看电脑的ip ipconfig
#打开计算器 calc 打开画图工具 mspaint 打开记事本 notepad
#ping命令
ping www.baidu.com
#文件操作
md 目录名
rd 目录名
cd> 文件名
del 文件名
C和C++
C
javaSE javaME javaEE
JDK,JRE,JVMJava Development Kit : java开发者工具
Java Runtime Environment: java运行时环境
Java Virtual Machine: java虚拟机
jvm可以用软件实现,也可以用硬件实现
HelloWorld 1) 文件后缀名为.java
2) hello.java
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}
编译javac java文件,会生成一个class文件
运行class文件,java class文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpx51m3z-1651326248393)(C:UsersywrdsgAppDataRoamingTyporatypora-user-imagesimage-20220425215620604.png)]
可能会遇到的情况helloworld
public class Hello {
public static void main(String[] args) {
System.out.println("Hello,World!");
}
}
关于java类,方法,对象,封装,多态,继承的扩展举例讲解
类:狗这类动物
方法:狗会吠 ,狗会摇尾巴 等等
对象:某一条狗
封装:你只需知道狗会吠就好,无需知道它为什么可以吠,喉咙和舌头怎么运作也不需要知道
继承:狗类继承自犬类,狼类继承自犬类,他们都吃肉,都能跑,这些都是犬类的方法
多态:虽然狼和狗都继承自犬类,但狗类实现了听主人话接口接口,狼类实现了嗷嗷叫接口接口,所以他们就呈现出多态。
https://blog.csdn.net/qq_60750453/article/details/120829332
单行注释
// xxxxxxxxxxxxxxx
多行注释
文档注释
public class HelloWorld {
public static void main(String[] args) {
//单行注释
//输出一个Hello,World!
System.out.println("Hello,World!");
//有趣的代码注释
}
}
1.2 标识符
关键字
public class Demo01 {
public static void main(String[] args) {
//不规范
String 王者荣耀 = "最强王者";
System.out.println(王者荣耀);
//大小写敏感
String Man = "ywr";
String man = "ywr";
String Ahello = "ywr";
String hello = "ywr";
String $hello = "ywr";
String _hello = "ywr";
String _1 = "ywr";
}
}
*数据类型
强类型语言
要求变量的使用严格符合规定,所有变量都必须要先定义后才能使用
Java的数据类型分为两大类
基本类型(primitive type)
public class Demo02 {
public static void main(String[] args) {
//八大基本类型
//整型
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//Long类型要在数字后加上L
//小数:浮点数
float num5 = 50.6f;
double num6 = 3.141592653589793238462643;
//字符
char name = '国';
//字符串,String不是关键字,是类
//String names = "ywr";
//布尔值:是非
boolean flag = true;
// boolean flag = false;
}
}
引用类型(reference type)
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
1B(byte,字节) = 8bit(位)
字符:是指计算机使用的字母,数字,字和符号
1bit表示1位
1Byte表示一个字节 1B=8b
1024B=1KB
1024KB=1M
1024M=1G
int i1 = 10; int i2 = 010;//八进制0 int i3 = 0x10;//十六进制0x 0~9 A~F System.out.println(i1); System.out.println(i2); System.out.println(i3);浮点数拓展
//BigDecimal 数学工具类 //float 有限的,离散的,舍入误差,大约的,接近但不等于 //double
float f = 0.1f;//0.1 double d = 1.0 / 10;//0.1 System.out.println(f == d);//false float d1 = 232323233f; float d2 = d1 + 1; System.out.println(d1 == d2);//true字符拓展
char c1 = 'A'; char c2 = '中'; System.out.println(c1); System.out.println((int) c1);//强制转换 System.out.println(c2); System.out.println((int) c2);//强制转换 //所有的字符本质还是数字 //编码 Unicode 表:(a = 97 A = 65) 2字节 65536 2的16次方 char c3 = 'u0061'; System.out.println(c3);转义字符
System.out.println("HellotWorld");
System.out.println("HellonWorld");
关于String
String sa = new String("Hello,World");
String sb = new String("Hello,World");
System.out.println(sa == sb);//false
String sc = "Hello,World";
String sd = "Hello,World";
System.out.println(sc == sd);//true
//对象 从内存分析
布尔值拓展
boolean flag = true;
if (flag==true){}//新手写法
if(flag){}//老手写法
//Less is More! 代码要精简易读
1.4 类型转换
由于Java是强类型语言,所以要进行有些运算时,需要用到类型转换
低 ----------------------------------> 高
byte,short,char -> int -> long -> float -> double
运算中,不同类型的数据先转换为同一类型,然后进行运算
强制类型转换
高 --> 低
int i = 128; byte b = (byte) i;//内存溢出
自动类型转化
低 --> 高
int i2 = 128; double b2 = i2;
//操作比较大的数的时候,注意溢出问题
//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
// System.out.println(money);
int years = 20;
int total = money * years;
System.out.println(total);//-1474836480 ,计算的时候溢出了
long total2 = money * years;
System.out.println(total2);// 默认是int,转换之前已经存在问题?
long total3 = money * ((long) years);
System.out.println(total3);
//L l
}
1.5 变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
要加关键字static
实例变量实例变量:从属于对象,如果不初始化值,这个值这个类型的默认值 0 0.0
布尔值默认值false,除了基本类型,其余的默认值都是null
局部变量写在方法里面的,必须声明和初始化值
public class Demo08 {
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象,如果不初始化值,这个值这个类型的默认值 0 0.0
//布尔值默认值false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo08();
Demo08 demo08 = new Demo08();
System.out.println(demo08.name);
System.out.println(demo08.age);
//类变量输出
System.out.println(salary);
}
//其他方法
public void add() {
}
}
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值
所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变
final 常量名 = 值; final double PI = 3.14;
常量名一般使用大写字符
a++:先使用a,再给a+1
++a:先给a+1,再使用a
public class Demo04 {
public static void main(String[] args) {
//一元运算符
//++ -- 自增,自减
int a = 3;
int b = a++; //先给b赋值,再自增
//a++ a = a + 1
System.out.println(a);
int c = ++a; //先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
逻辑运算符
&&:逻辑与运算:两个变量都为true,结果才为true
对于&&运算,如果左边为false,则右边不会执行直接输出结果false(短路运算)
||:逻辑或运算:两个变量有一个为true,结果为true
!:如果是true,结果则为false;如果为false,结果则为true
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与 或 非
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a && b));//逻辑与运算:两个变量都为true,结果才为true
System.out.println("(a || b):" + (a || b));//逻辑或运算:两个变量有一个为true,结果为true
System.out.println("!(a && b):" + !(a && b));//如果是true,结果则为false;如果为false,结果则为true
//短路运算 对于&&运算,如果左边为false,则右边不会执行直接输出结果false
int c = 5;
boolean d = (c < 4) && (c++ < 4);
System.out.println(c);
System.out.println(d);
}
}
位运算符
A = 0011 1100
B = 0000 1101
----------------
A&B 0000 1100 如果都为1,结果为1
A|B 0011 1101 只要有一个1,结果就为1
A^B 0011 0001 两个相同为0,不同为1
~B 1111 0010 取反
2*8怎么运算最快 2*2*2*2
效率极高!!!
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
扩展运算符
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a += b;// a = a + b
a -= b;// a = a - b
System.out.println(a);
//字符串连接符 +
System.out.println(a + b);
System.out.println("赵紫薇" + a + b);
System.out.println(a + b + "赵紫薇");
}
}
面试题:
public class Demo08 {
public static void main(String[] args) {
//三元运算符
//x ? y : z
//如果x==true,结果为y,反正结果为z
//int score = 80;
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}
运算符优先级
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
包语句的语法格式为:
package pkg1[.pkg2[.pkg3…]];
为了能够使用某一包的成员,我们需要在Java程序中明确导入该包,使用"import"语句可完成此项目
import package[.package2…].(classname|*);
https://www.matools.com/api/java8
可以看这个链接https://blog.csdn.net/weixin_42140580/article/details/89635775
第二章 Java流程控制 2.1 Scanner对象Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前,我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方法接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()) {
//使用next方法接收
String str = scanner.next();//程序会等待用户输入完毕
System.out.println("输出的内容为:" + str);
}
//凡是属于IO流的类如果不关闭会一直被占用资源,要养成好习惯用完就关闭
scanner.close();
}
}
public class Demo02 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方法接收:");
//判断是否还有输入
if (scanner.hasNextLine()) {
//使用nextLine方法接收
String str = scanner.nextLine();
System.out.println("输出的内容为:" + str);
}
scanner.close();
}
}
public class Demo03 {
public static void main(String[] args) {
//接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
String str = scanner.nextLine();
System.out.println("输出的内容为:" + str);
scanner.close();
}
}
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接收数据
int i = 0;
float f = 0.1f;
System.out.println("请输入整数:");
//如果--那么
if (scanner.hasNextInt()) {
i = scanner.nextInt();
System.out.println("整数数据:" + i);
} else {
System.out.println("输入的不是整数数据!");
}
System.out.println("请输入小数:");
//如果--那么
if (scanner.hasNextFloat()) {
f = scanner.nextFloat();
System.out.println("小数数据:" + f);
} else {
System.out.println("输入的不是小数数据!");
}
scanner.close();
}
}
public class Demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while (scanner.hasNextDouble()) {
double x = scanner.nextDouble();
m = m + 1;
sum = sum + x;
System.out.println("你输入了第" + m + "个数据,总和sum = " + sum);
}
System.out.println(m + "个数的和为" + sum);
System.out.println(m + "个数的平均值为" + (sum / m));
scanner.close();
}
}
2.2 顺序结构