Java基础学习笔记(一) - 基础语法
1.Java程序开发过程

编译: 是指将我们编写的Java源文件翻译成JVM认识的class文件,javac编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行:是指将编译好的class文件交给JVM去运行。
2.第一个Java程序Hello World
public class HelloWorld {
public static void main(String[] args){
System.out.println("hello world");
}
}
main方法:是程序的主方法,写法是固定格式不可以更改,main方法是程序的入口,JVM在运行程序的时候,都会从main方法这里开始执行。
3.程序注释
注释的作用是对代码解释说明。
//我是一个单行注释 /*
我是一个多行注释
我是一个多行注释
*/
4.关键字keywords
在程序中,有很多java语言已经定义好的单词,具有特殊含义,如public,class,static,void等。
5.标识符
标识符:在程序中我们自己定义的内容,如类的名字,方法的名字,变量的名字等。
命名规则(牢记):
- 标识符可以包含数字,字母,_(下划线),$(美元符号)。
- 标识符不能以数字开头。
- 标识符不可以和关键字重名。
命名规范:
- 类名规范:首字母大写,后面每个单词首字符大写(大驼峰式)。
- 方法名规范:首字符小写,后面每个单词首字母大写(小驼峰式)。
- 变量名规范:全部小写。
6.常量和变量
6.1 常量
在Java程序中固定不变。

6.2 变量
在Java程序中可以变化。
int num1 = 0
//定义变量的格式(三要素)
数据类型 变量名 = 数据值;
Java中要求一个变量每次只能保存一个数据,而且必须声明数据类型,如int(整型)。
基本数据类型:

引用数据类型(引用的是内存地址,不是实际的值):
类,数组,接口。
变量使用要求:
- 在同一个作用域,变量不可以重名。
- 定义的变量,不赋值不能使用。
6.3 变量和常量的运算

变量d赋值报错的原因是因为,a和b都为变量,编译器不确定是否超过byte的取值范围。
变量c没报错,常量1和2都是固定数值,计算结果也是固定的,没有超过byte的取值范围。
7.数据类型转换
7.1 自动转换
自动转换:在进行运算操作时将取值范围小的类型自动转换为取值范围大的类型。
转换规则:

public static void main(String[] args){
int a = 1;
float b = 1;
//运行结果为2.0
System.out.println(a + b);
}
7.2 强制转换
强制类型转换:主动将取值范围大的类型自动转换为取值范围小的类型。
转换格式:

public static void main(String[] args){
int a = 1;
byte b = (byte)a;
System.out.println(b);
}
强烈注意:
- 浮点转换整数时,小数点后被取消,可能造成数据损失精度。
- int转换short时失去两个字节,可能造成数据丢失。
8.运算符
8.1 算数运算符

+符号在遇到字符串时表示连接,拼接的含义。
8.2 赋值运算

注意:s+=1和s=s+1的区别(s为short类型)
s = s + 1 实际上执行了两次运算,一计算s+1的结果(结果为int),二将s+1的计算结果赋值给s(s为short类型,将int类型结果赋值给s会发生错误)。
s += 1 只运算一次,并带有强制转换的特点,也就是说s += 1就是 s = (short)(s+1)。
8.3比较运算符

8.4 逻辑运算符

逻辑运算的结果只有true和false。
8.5 三元运算符

计算方式:
- 表达式为true,结果1赋值给变量
- 表达式为false,结果2赋值给变量
public class HelloWorld {
public static void main(String[] args){
int a = (1==2 ? 100:200);
System.out.println(a);//200
}
}
9.Java中的方法
方法:将一个功能抽取出来,单独定义在一个方法内。
作用:实现代码复用,解决代码冗余。
9.1 方法的定义

- 位置:方法必须定义在类中,方法不能定义在另一个方法中。
- 返回值:return返回的类型必须和声明的返回值类型相同,否则编译失败。
9.2 方法的调用
方法定义完毕后,方法不会自己运行,必须被调用才能执行。
调用方式:
- 直接调用
- 赋值调用
- 输出语句调用
public class HelloWorld {
public static void main(String[] args){
method1();//直接调用
int x = method1();//赋值调用(必须有返回值才能使用)
System.out.println(method1());//输出语句调用
}
public static int method1(){
System.out.println("我是方法1");
return 1;
}
}
9.3 方法重载
含义:在同一个类中,允许存在多个同名方法,只要他们的参数列表(个数不同,类型不同,顺序不同)不同即可。
JVM在调用方法时会根据参数列表找到对应的方法执行。
public class HelloWorld {
public static void main(String[] args){
method1(1,2);
method1("1",2);
}
public static void method1(int a,int b){
System.out.println("我是方法1");
}
public static void method1(String a,int b){
System.out.println("我是方法1的重载");
}
}
10.流程控制
概述:控制程序执行顺序。
10.1 判断语句

从上到下的顺序执行,只执行一层,没有满足的条件则执行else。
10.2 选择语句

首先计算表达式的值,其次和case依次比较,一旦有对应的值,就会执行相应的语句,执行完毕break(break一定要写,否则程序会继续向下执行,直到选择语句结束)跳出,如果所有都不匹配则执行default。
10.3 循环语句
循环可以嵌套。


while(true)表示死循环。

for和while区别:
- for作用域的变量会在执行完毕后,自动销毁。while不会。
- 已知循环次数使用for,未知使用while。
10.4 跳出语句
- break:终止switch语句或循环。
- continue:结束本次循环,继续下一次循环。
11.数组
概念:数组就是存储数据的容器,数组中的数据类型一致。
11.1 创建数组
int[] arr1 = new int[3];
int[] arr2 = new int[]{1,2,3,4,5};
int[] arr3 = {1,2,3,4,5};
数组实际上是内存中的地址。
JVM的内存划分:

11.2 常用操作
- 访问:使用索引。arr[1](如果索引1不存在会导致数组越界,arr为null会导致数组空指针异常)。
- 遍历:使用for循环。

11.3 方法中使用数组
- 数组作为方法参数。(参数为基本类型时,传递的是数据值,为引用类型时,传递的是内存地址。)
- 数组作为方法返回值。(声明类型必须正确)
温馨提示
- 如果您对本文有疑问,请在评论部分留言,我会在最短时间回复。
- 如果本文帮助了您,也请评论关注,作为对我的一份鼓励。
- 如果您感觉我写的有问题,也请批评指正,我会尽量修改。
Java基础学习笔记(一) - 基础语法的更多相关文章
- Java Script 学习笔记 (一) 基础
1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- Java后端高频知识点学习笔记1---Java基础
Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
随机推荐
- 用Python操作文件
用Python操作文件 用word操作一个文件的流程如下: 1.找到文件,双击打开. 2.读或修改. 3.保存&关闭. 用Python操作文件也差不多: f=open(filename) # ...
- Light It Up CF1000B 思维
Light It Up time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- Numbers That Count POJ - 1016
"Kronecker's Knumbers" is a little company that manufactures plastic digits for use in sig ...
- yzoj P2045 不老的传说 题解
题意 类似于涂色问题,环形问题不多说,断环加倍即可,限制条件if判断就行. 解析 代码 #include<bits/stdc++.h> using namespace std; int n ...
- AOE工程实践-银行卡OCR里的图像处理
作者:杨科 近期我们开发了一个银行卡 OCR 项目.需求是用手机对着银行卡拍摄以后,通过推理,可以识别出卡片上的卡号. 工程开发过程中,我们发现手机拍摄以后的图像,并不能满足模型的输入要求.以 And ...
- 阿里短信封装SDK TP3.2
1.阿里短信接口需要企业认证: 2.短信需要短信模板 <?php /** * 阿里云短信验证码发送类 * @param string $accessKeyId key * @param stri ...
- 【LeetCode】BFS 总结
BFS(广度优先搜索) 常用来解决最短路径问题. 第一次便利到目的节点时,所经过的路径是最短路径. 几个要点: 只能用来求解无权图的最短路径问题 队列:用来存储每一层便利得到的节点 标记:对于遍历过的 ...
- 在Win10右键菜单添加校验文件Hash值命令
把以下代码保存为reg文件导入注册表即可. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\文件哈希校验] " ...
- vscode主题安装
安装主题 快捷键Ctrl+Shift+X打开安装插件 搜索Monokai ST3 切换主题 显示效果 安装文件图标 扩展插件vscode-icon 鼠标滚轮设置字体大小 打开setting.json文 ...
- 51 (OC) NSURLComponent 组成部分。
网页地址协议 url scheme
