java学习
Java
2020/8/18(基础)
1. 注释,标识符,关键字
//单行注解
/*
*多行注释
*/
/**
* 段落注释
*/
Sout
System.out.println("b1.main");
psvm
public static void main(String[] args) {
2. 类型
// 八大类型
// 整数
Intt
int num1= 10;//最常用
byte num2 = 20;
short num3 =30;
long num4 = 30L;//long类型要在数字后边加L
// 小数
float num5 = 50.1F;//float后边加F
double num6 = 3.1415926;
//字符
char name = 'a';
//字符串 关键字 是类
String name = 'qin';
//布尔值:是与非
boolean flag = true;
//boolean flag = false;
3. 银行问题
//银行问题
// float 有限 离散 舍入误差 大约 但不相等
//银行使用BIGDECIMAL 数据类型
//double
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//flase
float d1 = 2333333333333333f;
float d2 = d1+1;
System.out.println(d1==d2);//true
4. 强制转换
// 强制转换
char c1 = '中';
char c2 = 'a';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int) c2);
// 所有的字符本质还是数字
5. 编码
// 编码 Unicode 表(97 = a 65 = A)
//U000 UFFF
char c3 = '\u0061';
System.out.println(c3);
6. 转义字符
// 转义字符
//\t
//\n
System.out.println("he \t mo");
System.out.println("he \n mo");
7. 对象比较
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);
System.out.println("========================================");
String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd);
8. 强制转换
// 强制转换
int i = 128;
//byte b = (byte)i;//内存溢出
double b = i;
//强制转换 (类型) 变量名 高到低
//自动转换 低-高
System.out.println(i);
System.out.println(b);
// 1. 不能对boole转换
// 2。不能把对象类型转换为不相干类型
// 3. 大容量转换低容量 强制转换
// 4.转换时可能出现内存溢出 精度问题
9. Char转换
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char) d);
10. 操作比较大的数据 会溢出问题
//10.操作比较大的数据 会溢出问题
//jdk7 新特性 数字之间 可以用下划线分割
// 数据类型大小 byte<short<char<int<long<float<double
int money = 10_0000_0000;
int years = 20;
int total = money*years;
long total2 = money * years;
long total3 = money * ((long)years);//先把一个数转换为long
System.out.println(total);//-1474836480 计算溢出
System.out.println(total2);//默认是int类型计算 转换之前就存在问题
System.out.println(total3);
11. 类变量
//类变量
static double salary =2500;
//属性:变量
//实例对象 :从属于对象 如果不禁想初始化 这个类型默认值为 0
String name;
int age;
//main 方法
public static void main(String[] args) {
// 局部变量 必须声明和初始化
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new b6();
b6 b = new b6();
System.out.println(b.age);
System.out.println(b.name);
//输出类变量
System.out.println(salary);
12. 静态常量
//静态常量
//修饰符 不分前后顺序
static final double PI = 3.14;
// final static double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
13. 驼峰原则
//驼峰原则
1.类成员变量,除第一个单词以外,后边单词首字母大写 lastName
2.局部变量 首字母小写和驼峰原则 tName
3.常量 大写字母和下划线 MAX_VALUE
4.类名 首字母大写和驼峰原则 Man GoodMan
5.方法名 首字母小写和驼峰原则 run() runRun()
14. 二元运算
//运算符
public static void main(String[] args) {
// 二元运算
// crtl+D 复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
15. 基本运算
public static void main(String[] args) {
Long a = 1232323312312L;
int b = 123;
short c = 10;
byte d =8;
// 如果数据类型有Long 结果都有 Long
//其余都为 INT
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//INT
2020/8/19(基础)
16. ++i i++
i++
int a = 3;
int b = a++;//先进行赋值 再进行++
//a++ a =a+1 隐藏代码
System.out.println(a);
System.out.println(b);
++i
int a = 3;
int b = ++a; //先进行自增 再进行赋值
//++a a =a+1 隐藏代码
System.out.println(a);
System.out.println(b);
17. 幂函数
//幂函数 2^3 2*2*2=8
double pow = Math.pow(3,2);
System.out.println(pow);
18. 逻辑运算符
//逻辑运算符
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a && b));
System.out.println("a || b:"+(a && b));
System.out.println("!(a && b:)"+!(a && b));
19. 短路运算
// 短路运算
int c = 4;
boolean d = (c<3)&&(c++<3);
System.out.println(d);
System.out.println(c);
20. 位运算
//位运算
/*
A= 0011 1100
B= 0000 1101
--------------
A&B = 0000 1100 只有上下都为1 结果为1
A|B = 0011 1101 只要出现0 就是0 只要出现一个1 就是1
A^B = 0011 0001 相同为0 相反为1
~B = 1111 0010 取反
2*8 = 16 2*2*2=16
*/
System.out.println(2<<3);
21. 字符串拼接
//字符串连接符
int a = 10;
int b = 20;
System.out.println(a+b);
System.out.println(""+a+b);//后边为string类型
System.out.println(a+b+"");//先获取值
22. 三元运算
//三元运算
//x? y :z
//如果x==true ,则结果为y 否则结果为z
int score = 50;
String type = score<60 ?"不及格":"及格";
System.out.println(type);
23. 包名 公司域名倒置作为包名(com.baidu)
package com.fun.operator;
import com.fun.base.*
//导入包下所有的类
public class B18 {
//23.包名 公司域名倒置作为包名
}
24. JavaDoc 文档注释
// 24.JavaDoc 文档注释
/**
* @auther fun
* @version 1.0
* @param args
*/
public static void main(String[] args) {
String name ;
/**
* @author 作者名
* @version 版本号
* @since 指明需要最早使用的jdk版本
* @param 参数名
* @return 返回值情况
* @throws 异常抛出情况
*/
public String test(String name);
return name;
2020/8/19(Java 流程)
1.scanner
// 创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收");
// 判断用户有没有输入
if (scanner.hasNext()) {
//使用next方式接收
String str = scanner.nextLine();
System.out.println("输出内容为:"+str);
}
// nextLine回车之后都会打印 next有空格就不会打印
scanner.close();//关闭scanner
2.if循环判断
//if循环判断
//考试分数大于60就是及格 小于60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int score = scanner.nextInt();
if (score > 60) {
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();45
}
3.if循环判断
//if循环判断
//考试分数大于60就是及格 小于60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int score = scanner.nextInt();
if (score > 60) {
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
3.switch 多选择结构
//.switch 多选择结构
public static void main(String[] args) {
//case穿透 //switch 匹配一个具体的值
char grade = 'B';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
default :
System.out.println("未知");
}
}
4.while循环
// While循环
public static void main(String[] args) {
// 计算1+2+3+...+100=?
int i = 0;
int sum = 0;
while(i<=100)
{
sum=sum+i;
i++;
}
System.out.println(sum);
}
5.do.....while循环
2020/8/25(Java )
1.方法重载
public class demo1
{
public static void main(String[] args) {
int max = max(10,10);
System.out.println(max);
}
// 比较大小 输出最大值
//重载就是在一个类中 有相同的函数名称 但形参不同的函数
public static int max(int num1,int num2){
int result = 0;
if (num1 == num2) {
System.out.println("num1=num2");
return 0;
}
if (num1 < num2) {
result = num2;
}else {
result = num1;
}
return result;
}
2.数组
public static void main(String[] args) {
int[] nums;//定义
nums = new int[10];//存放10个类型数字
// int [] nums2 = new int[10];
nums[0]=1;
nums[1]=1;
nums[2]=2;
nums[8]=8;
// nums[9]=12;
System.out.println(nums[0]);
System.out.println(nums[8]);
System.out.println(nums[9]);
System.out.println("======================================");
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum = sum+nums[i];
}
System.out.println(sum);
}
3.数组(静态初始化)
// 静态初始化数组
public static void main(String[] args) {
int[] a = {1,2,3,4};
System.out.println(a[0]);
}
4.接口
package com.fun.Demon09;
public interface UserService {
//定义接口
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
5.抽象类
//abstract 抽象类:类 extends: 单继承 (接口可以实现多继承)
public class Demo09 {
//抽象类
//abstract 抽象方法 只有方法名字,没有方法的实现
public abstract void doSomething();
//1.不能new 这个抽象类 只能靠子类去实现它 进行约束
//2.抽象类中可以写普通的方法
//3.抽象方法必须在抽象类中
//抽象类的抽象 约束
6.抛异常
//抛异常
public static void main(String[] args) {
int a=1;
int b = 2;
try {
System.out.println(a/b);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
2020/8/31(网络协议)
1.网络协议
//应用层 Application
//表示层 Presentation
//会话层 Session 应用层
//传输层 Transport 传输层
//网络层 Network 网络层
//数据链路层 Data Link
//物理层 Physical 数据链路层
2020/9/3(注解)
1.元注解
//元注解
//Target 注解标识我们的注解可以用在哪些地方
@Target( value = {ElementType.METHOD,ElementType.TYPE})
//@Retention 表示我们注解在什么地方还有效果
// runtime > class >souurces
@Retention({value =RetentionPolicy.RUNTIME})
//Documented 表示是否将我们的注解生成在JAVAdoc中
@Documented
//Inherited 子类可继承父类的注解
@Inherited

浙公网安备 33010602011771号