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基础学习笔记(一) - 基础语法的更多相关文章

  1. Java Script 学习笔记 (一) 基础

    1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...

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

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

  3. Java基础学习笔记总结

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

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

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

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

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

  6. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  7. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

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

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

  9. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

随机推荐

  1. Commons组件实现文件上传与下载

    一.文件上传 所需jar包 首先是commons-fileupload.jar包 其次是commons-IO.jar包 前者的使用依赖后者,两者缺一不可 实现 前台要求 在前台提交的form表单请求方 ...

  2. Android定时锁屏功能实现(AlarmManager定时部分)

    菜鸟入坑记——第一篇 关键字:AlarmManager 一.AlarmManager简介: 参考网址:https://www.jianshu.com/p/8a2ce9d02640        参考网 ...

  3. POJ-1984-Navigation Nightmare+带权并查集(中级

    传送门:Navigation Nightmare 参考:1:https://www.cnblogs.com/huangfeihome/archive/2012/09/07/2675123.html 参 ...

  4. hdu 4734 F(x)(数位dp+优化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 题意:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2 ...

  5. Maximum Product UVA - 11059

    Given a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of the ...

  6. 【Offer】[33] 【二叉搜索树的后序遍历序列】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回true, 否则返回false. 假设输入的数组的任意两个数字 ...

  7. 从零开始开发IM(即时通讯)服务端(二)

    好消息:IM1.0.0版本已经上线啦,支持特性: 私聊发送文本/文件 已发送/已送达/已读回执 支持使用ldap登录 支持接入外部的登录认证系统 提供客户端jar包,方便客户端开发 github链接: ...

  8. spring boot使用AOP切面编程

    spring boot使用AOP 1.在pom文件中添加依赖: <!--spring boot aop切面--> <dependency> <groupId>org ...

  9. Nginx总结(六)nginx实现负载均衡

    前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...

  10. Java的初始化块及执行过程详解

    问题:Java对象初始化方式主要有哪几种?分别是什么?针对上面的问题,想必大家脑海中首先浮现出的答案是构造器,没错,构造器是Java中常用的对象初始化方式. 还有一种与构造器作用非常相似的是初始化块, ...