【狂神说Java】Java零基础学习笔记-Java基础

Java基础01:注释

  • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。

  • 注释并不会被执行,是给我们写代码的人看的

  • 书写注释是一个非常好的习惯

  • 平时写代码一定要注意规范。

  • Java中的注释有三种:

    • 单行注释: //注释 (只能注释一行文字)
    • 多行注释: /* 注释 */ (可以注释一段文字)
    • 文档注释: /** 注释 */

Java基础02:标识符

  • 关键字

  • Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始

  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合

  • 不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感

  • 合法标识符举例: age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary、#abc

public static void main(String[] args) {
String 王者荣耀 = "最强王者";
system.out.println(王者荣耀);
}
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

Java基础03:数据类型

  • 强类型语言

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型(primitive type)
    • 引用类型(reference type)

//八大基本数据类型

//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //Long类型要在数字后面加个L //小数:浮点数
float num5 = 50.1F; //Lfloat类型要在数字后面加个F
double num6 = 3.141592653589793238462643; //字符
char name = '国';
//字符串,string不是关键字,类
//String namea = "秦疆"; //布尔值:是非
boolean flag = true;
//booLean flag = false;

什么是字节

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。

  • 1B (byte,字节) = 8bit (位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位,

  • 1Byte表示一个字节1B=8b。

  • 1024B=1KB

  • 1024KB=1M

  • 1024M=1G

  • 1024G=1T

  • 思考:电脑的32位和64位的区别是什么呢?

Java基础04:数据类型拓展及面试题讲解

//整数拓展? 进制 二进制0b 十进制 八进制0 十六进制0x

int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x 0~9 A~F 16 System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
//浮点数拓展? 银行业务怎么表示? 钱
//BigDecimal 数学工具类 //float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较 float f = 0.1f; //0.1
double d = 1.0/10; //0.1 System.out.println(f==d); //false float d1 = 23131312312312313f;
float d2 = d1 + 1; System.out.println(d1==d2); //true
//字符拓展?

char c1 = 'a';
char c2 = '中'; System.out.println(c1); //a System.out.println((int)c1); //强制换行 //97 System.out.println(c2); //中 System.out.println((int)c2); //强制换行 //20013 //所有的字符本质还是数字
//编码 Unicode 表:(97 = a 65 = A) 2字节 0 - 65536 Excel 2的16次方=65536 //U0000 UFFFF char c3 = '\u0061'; System.out.println(c3); //a //转义字符
// \t 制表符
// \n 换行
//... System.out.println("Hello\tWorld"); //Hello World
System.out.println("Hello\nWorld");
/*
Hello
World
*/
String sa = new String(original:"hello wor1d");
String sb = new String(original:"hello world");
System.out.println(sa==sb); //false string sc = "he1lo wor1d";
string sd = "he11o wor1d";
System.out.println(sc==sd); //true
//对象 从内存分析
//布尔值扩展
boolean flag = true;
if (flag==true){} //新手
if (flag){} //老手
//Less is More! 代码要精简易读

Java基础05:类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

    • 低---------------------------------------------------------->高
    • byte,short,char -> int -> long -> float -> double
  • 运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换

  • 自动类型转换

int i = 128;
byte b = (byte)i; //内存溢出 System.out.println(i); //128
system.out.println(b); //-128 //强制转换 (类型)变量名 高--低
//自动转换 低--高 /*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
*/ System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45 char c = 'a';
int d = c+1;
System.out.println(d); //98
System.out.println((char)d); //b
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; //-1474836480,计算的时候溢出了
long total2 = money*years; //默认是int,转换之前已经存在问题了? long total3 = money*((long)years); //先把一个数转换为long
System.out.println(total3); //20000000000 //L l

Java基础06:变量

  • 变量是什么:就是可以变化的量!

  • Java是一种强类型语言,每个变量都必须声明其类型。

  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

    type varName [=value] [{,varName[=value]}];
    //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。
  • 注意事项:

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
//int a,b,c;
//int a=1,b=2,c=3; //程序可读性
string name = "qinjiang";
char x = 'x';
double pi = 3.14;
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); //变量类型 变量名字 =
Demo08 demo08 = new Demo08();
System.out.println(demo08.age); //0
System.out.println(demo08.name); //null //类变量 static
System.out.println(salary); //null
} //其他方法
public void add(){ }
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

    • final 常量名=值;
    • final double PI=3.14;
  • 常量名一般使用大写字符。

public class Demo09 {
//修饰符,不存在先后顺序
static final double PI = 3.14; public static void main(String[] args) {
System.out.println(PI); //3.14
}
}

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastname lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

Java基础07:运算符

  • Java语言支持如下运算符:

    • 算术运算符:+,-,*,l,%,++,--
    • 赋值运算符:=
    • 关系运算符:>,<,>=,<=,==,!= instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
    • 条件运算符:? :
    • 扩展赋值运算符:+=,-=,*=,/=
//二元运算符
//Ctrl + D:复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25; System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/(double)b); //0.5
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8; System.out.println(a+b+c+d); //123123123123264 //Long
System.out.println(b+c+d); //141 //Int
System.out.println(c+d); //18 //Int
//关系运算符返回的结果:正确,错误 布尔值
//if int a = 10;
int b = 20;
int c = 21; //取余,模运算
System.out.println(c%a); //1 //c / a 21 / 10 = 2 ... 1 System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true

Java基础08:自增自减运算符、初识Math类

//++ -- 自增,自减 一元运算符
int a = 3; int b = a++; //执行完这行代码后,先给b赋值,再自增
//a++ a = a + 1
System.out.println(a); //4
//++a a = a + 1
int c = ++a; ////执行完这行代码前,先自增,再给c赋值 System.out.println(a); //5
System.out.println(a); //5
System.out.println(b); //3
System.out.println(b); //3
System.out.println(c); //5
System.out.println(c); //5 //幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作!
System.out.println(pow); //8.0
double pow = Math.pow(2,3);
System.out.println(pow); //8.0 double pow = Math.pow(3,2);
System.out.println(pow); //9.0

Java基础09:逻辑运算符、位运算符

//逻辑运算符
public class Demo05 {
public static void main( String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false; System.out.println("a && b: "+(b&&a));//逻辑与运算:两个变量都为真,结果才为true //a && b: false
System.out.println("a || b: "+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true //a || b: true
System.out.println("! (a && b): "+! (a&&b));//如果是真,则变为假,如果是假则变为真 //! (a && b): true //短路运算
int c = 5;
boolean d = (c<4)&&(C++<4);
System.out.println(d); //false
System.out.println(c); //5
}
}
public class Demo06 {
public static void main( String[] args) {
/*
A = 0011 1100
B = 0000 1101
---------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010 2*8 = 16 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
*/ System.out.println(2<<3); //16
}
}

Java基础10:三元运算符及小节

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); //10 //字符串连接符 + , String
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
}
}
//三元运算符
public class Demo08 {
public static void main( String[] args) {
//x ? y : z
//如果x==true,则结果为y,否则结果为z int score = 50;
String type = score < 60?"不及格":"及格";//必须掌握
//if
System.out.println(type); //不及格 int score = 80;
String type = score < 60?"不及格":"及格";//必须掌握
//if
System.out.println(type); //及格
}
}

Java运算符优先级列表

优先级 运算符 简介 结合性
1 [ ] .( ) 方法调用,属性获取 从左向右
2 !、~、 ++、 -- 一元运算符 从右向左
3 * 、/ 、% 乘、除、取模(余数) 从左向右
4 + 、 - 加减法 从左向右
5 <<、 >>、 >>> 左位移、右位移、无符号右移 从左向右
6 < 、<= 、>、 >=、 instanceof 小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型 从左向右
7 == 、!= 2个值是否相等,2个值是否不等于。 下面有详细的解释 从左向右
8 & 按位与 从左向右
9 ^ 按位异或 从左向右
10 | 按位或 从左向右
11 && 短路与 从左向右
12 || 短路或 从左向右
13 ?: 条件运算符 从右向左
14 =、 += 、-= 、*= 、/=、 %=、 &=、 混合赋值运算符 从右向左
14续 |=、 ^=、 <、<= 、>、>= 、>>= 混合赋值运算符 从右向左

Java基础11:包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。

  • 包语句的语法格式为:

    package pkg1[. pkg2[. pkg3...]];
  • 一般利用公司域名倒置作为包名; www.baidu.com>com.baidu.www

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能

    import package1[.package2...].(classname|*);

阿里巴巴 Java 开发手册

阿里巴巴 Java 开发手册 下载

Java基础12:JavaDoc

  • javadoc命令是用来生成自己API文档的

  • 参数信息

    • @author作者名
    • @version版本号
    • @since指明需要最早使用的jdk版本
    • @param 参数名
    • @return返回值情况
    • @throws异常抛出情况
package com.kuang.base;

/**
*@author Kuangshen
*@version 1.0
*since 1.8
*/
public class Doc { string name; /**
*@author Kuangshen
*@param name
*@return
*@throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}

【【狂神说Java】Java零基础学习视频通俗易懂】https://www.bilibili.com/video/BV12J41137hu?p=21&vd_source=fd5defd6aaa826e3b6e0c06073353e32

【狂神说Java】Java零基础学习笔记-Java基础的更多相关文章

  1. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...

  2. Java基础学习笔记-Java数据类型转换-(~ ̄▽ ̄)~

    JAVA数据类型和JS数据类型转换不一样,因为它是强类型语言嘛 类型转换规则 不允许数值类型和布尔类型 转换 整型.实型.字符型数据可以混合运算 类型转换分类 自动类型转换-隐式转换 1.整数转换为小 ...

  3. Java基础学习笔记(一) - 基础语法

    1.Java程序开发过程 编译: 是指将我们编写的Java源文件翻译成JVM认识的class文件,javac编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功. 运行: ...

  4. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  5. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  6. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  7. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  8. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  9. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  10. JAVA的反射机制学习笔记(二)

    上次写JAVA的反射机制学习笔记(一)的时候,还是7月22号,这些天就瞎忙活了.自己的步伐全然被打乱了~不能继续被动下去.得又一次找到自己的节奏. 4.获取类的Constructor 通过反射机制得到 ...

随机推荐

  1. Sentinel简单使用(1)

    使用场景 在微服务架构中,服务之间会进行大量的调用.为了防止某个服务被过多的请求压垮,导致整个系统崩溃,就需要对流量进行控制.同时,当某个服务出现故障时,为了防止故障扩散到整个系统,需要进行熔断操作. ...

  2. vue 从后端拿到验证码并点击刷新

    验证码登录的实现思路1.前端从后端拿到验证码图片2.输入验证码进行登录3.后端拿到验证码进行比对,正确登录成功. 前端请求验证码直接写在img标签中即可,不必单独发送axios请求 // templa ...

  3. Win11右键默认显示更多设置

    以管理员方式运行CMD,运行: reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2} ...

  4. 强化学习算法——TPG算法(遗传编程GP算法)代码

    tpg算法是一个使用模块涌现和复用机制的遗传编程(GP)算法,该算法在一些强化学习问题上有着不错的表现,本文给出该算法的项目地址. tpg算法的C++实现代码大概有1万的逻辑代码,如果这个比例换做使用 ...

  5. 3.20 什么是环境变量,Linux环境变量有哪些?

    变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值.在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME).邮件存放 ...

  6. 好未来:多云环境下基于 JuiceFS 建设低运维模型仓库

    好未来,前身学而思,于 2010 年在美国纽约证券交易所上市.公司积极将大模型研究应用于教学产品中,近期推出了数学领域的千亿级大模型. 在大模型的背景下,存储系统需处理巨量数据和复杂文件操作,要求支持 ...

  7. 盘点阿里、腾讯、百度大厂C#开源项目

    BAT作为互联网第一梯队的互联网公司,他们开源的项目都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题. 目前互联网的大厂开源的项目涉及各种语言,项目类型包含 ...

  8. 快速量产低功耗 4G 定位方案?Air201 模组来搞定!

    今天我们来了解的是Air201模组快速量产低功耗 4G 定位方案,希望大家有所收获. 寻寻觅觅低功耗4G定位方案? 一个Air201就够了! --定位准.体积小.功耗低,助力行业客户快速量产! 01 ...

  9. LLM应用实战: 给个公司简称,输出公司全称

    1.背景 本qiang~本周在处理手头项目工作的时候,遇到了一个问题,就是友方提供了一个公司名称列表(量不小~,因此无法人工处理),且该公司名称列表均为简称,需要与库中的全称做一个映射匹配. 看似简单 ...

  10. vagrant 中 php 7.2 升级到 php 7.3

    在本地用 vagrant 给 php 7.2 升级到 7.3 的时候,直接修改了 box/config.yml里面 php 版本 然后就 vagrant reload --provision 进行重新 ...