前言:
个人介绍:硕士搞自动驾驶算法,非科班,懂点CPP但不多,工作原因开始自学java/web开发等,目的为了解开发流程,个人不做实际开发。
学习方式:B站视频
以下为关于java个人觉得有用的一些学习笔记,全部整理到一起。再往后关于类、多态等知识感觉和C大差不差,就暂停了java语言的深入,直接入手web开发。
独学而无友,则孤陋而寡。欢迎各路大神指点!
20240508:
1.JDK主要提供两个工具
javac:编译.java代码 java:运行编译后的.class文件
其他两个工具 javaw和jshell
2.环境变量 JAVA_HOME的配置;
3.JAVA分为Java SE(桌面应用)/Java ME(嵌入式设备)/ Java EE(web方向网站开发)
4.Java EE的方向
(1)桌面应用,各类软件
(2)企业级应用,微服务 springcloud
(3)移动应用,android,
(4)matlab
(5)大数据开发,hadoop
(6)我的世界游戏
20240510:
1.Java的特点:面向对象,多线程,开源,跨平台
2.Java跨平台的原理为:java不是运行在操作系统里的,是运行在虚拟机里的(JVM),只需要针对不同的操作系统安装不同的虚拟机即可。
3.JRE和JDK
JDK(java development kits):JVM、核心类库、开发工具(javac、java、jdb、jhat)
JRE(java run environment):JVM、核心类库、运行工具
4.关键字的全部字母小写,类名和文件名要保持一致;
5.字面量
字面量类型:整数、小数、字符串、字符、布尔、空类型(null)
6.特殊符号
‘\t’:制表符,用来对齐
7.计算机存储规则
文本;图片(RGB三原色);声音(控制采样频率)
8.数据类型
(1)byte类型(-128~127)
(2)如果用long类型定义,需要在数字后面加L,如:long a = 99999L;
(3)用float定义时,后面需要加一个F作为后缀,如:float a = 1.87F;
20240515:
1.标识符命名规则
(1)小驼峰
适用于方法和变量,如:firstStudent
(2)大驼峰
适用于类名,如:GoodStudent
2.Scanner类,可以扫描键盘录入
步骤:导包,创建对象,接收数据(见ScannerDemo.java)
导包要放在类定义之前
20240516:
1.IDEA的项目结构:project,module,package,class
2. Package的多级包用 . 分割开,如建立com.it.demo1,最外层是com
3.代码的快捷操作
快速书写main函数:psvm;快速书写输出函数:sout
4.基础设置
改变背景颜色、字体大小、颜色、自动导包、大小写匹配
5.类(class)的操作:新建、删除、编辑(使用rename对类进行重命名)
6.模块(module)的操作:新建、修改、删除、导入
7.项目的操作:新建、打开、关闭、修改
8.代码中如果有小数参与计算,结果有可能是不精确的;
9.隐式转换
Byte->short->Int->long->float->double
Byte/char/short在进行数值运算时,自动转成int;
10.强制转换
double a = 10.3;
Int b = (int)a;
11.连续 + 时,从左到右进行 如1+99+“年黑马” 结果为“100年黑马”
只要有字符串拼接,就产生新的字符串
20240522:
1.& 和 | 分别为与和或
2.&& 和 || 分别为短路与和短路或,意思为:当左边可以满足时,右边就不会参与
3.三元运算符:
关系表达式?表达式1:表达式2
4.原码、反码、补码
正数的三个码是一致的;
负数的原码为:第一位为1,后边为数值;反码则第一位不变,其余位0变1,1变0;补码为反码加1;
5.逻辑运算
20240508:
switch的注意事项:
(1)注意写default和break;
1.数组的静态初始化,手动指定元素,系统给出数组长度
int[] array = new int[]{2,2,2};
int[] array = {2,6,7};
2.数组遍历的书写方法: array.fori
3.数组的动态初始化,只指定数组长度,系统自动给数组赋值(0/null)
int[] array = new int[4];
4.方法定义示例
package com.it.demo1;
public class HelloWorld {
public static void main(String[] args) {
int re = play(1,3);
System.out.println(re);
}
public static int play(int a,int b){
return a+b;
}
}
5.方法要先定义后调用,定义在同一个类中
基本格式:
public static 返回值类型(参数){
方法主体;
return
}
6.方法重载
同一个类中、名称相同、参数(类型、个数)不同
7.键盘录入多个数据
Scanner s = new Scanner(System.in);
Int a = s.nextInt();
Int b = s.nextInt();
8.Ctrl+alt + M,自动抽取方法
9.二维数组
静态初始化:Int[][] arr = {{1,2},{2,3}};
动态初始化:int[][] arr = new int[2]{3];
20240528:
1.类和对象的概念
类:成员变量、成员方法、构造器、代码块、内部类
对象名.成员变量
2.描述一类事物的类(没有main方法),javabean类,带main的叫做测试类;
3.一个java文件中写一个类;
4.面向对象的三个特征:封装、继承、多态
5.private修饰的只能在本类中使用;经常添加set和get方法,用public修饰
6.this用于区分局部变量和成员变量;
7.构造方法:创建对象时自动调用;
8.标准的javabean类:
(1)类名要见名知意;
(2)成员变量用private修饰;
(3)提供至少两个构造方法:无参和有参的;
(4)提供每一个成员变量的get和set方法;
9.Idea的PTG插件可以一键生成javabean的模板;
20240508:
1.scanner的几个函数:
(1)nextInt():接收整数
NextDouble():接收小数
Next():接收字符串
以上为遇到空格、制表符、回车就不再接收
(2)nextLine():接受字符串
可以接收空格、制表符,遇到回车停止
两个体系不可以混用;
2.关于API文档的使用,包括类的一些方法、字符串的操作方法等;