当前位置: 首页 > article >正文

Java入门知识(超详细讲解)

🙈作者简介:练习时长两年半的Java up主
🙉个人主页:老茶icon
🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎
📚系列专栏:Java全栈,计算机系列(火速更新中)
💭 格言:种一棵树最好的时间是十年前,其次是现在
🏡动动小手,点个关注不迷路,感谢宝子们一键三连

目录

  • 课程名:Java入门
    • 内容/作用:知识点/设计/实验/作业/练习
    • 学习:Java基础知识
    • 一、前言
      • Java代码中的注意事项
    • 二、环境与设备
    • 三、原理
      • 编程语言命名规则
        • 驼峰命名法
        • 帕斯卡命名法
      • 标识符
      • JAVA标识符的命名规则
    • 四、内容
      • 变量
        • 概念
        • 定义变量
        • 给变量赋值
        • 变量初始化
      • Java中的数据类型
        • 原始类型
        • 引用类型
      • 变量赋值时注意事项
      • 转义字符
        • ascii码表
      • 数据类型转换
        • 隐式类型转换(自动类型转换)
        • 显式类型转换(强制类型转换)
      • 接收控制台输入
    • 五、总结与分析

课程名:Java入门

内容/作用:知识点/设计/实验/作业/练习

学习:Java基础知识

一、前言

Java代码中的注意事项

  • class称为类,是运行的java程序的基本组成单位。一个java程序运行可能需要很多个class配合。
  • 每个能够运行的程序,有且只有一个main方法,称为主方法/入口函数,是程序的起点。
  • 符号
    • {} 必须成对出现。用于定义类、定义方法体、定义代码块
    • [] 必须成对出现。用于定义数组、使用数组。
    • () 必须成对出现。用于表示方法的参数。如果xxx后面有一对小括号,表示xxx是一个方法。
    • 空格 用于分割关键字与代码。
    • . 用于调用某个类的属性或方法。
    • ; 用于表示一句代码结束。大括号后无需加分号。

二、环境与设备

1.软件:IntelliJ IDEA 2022.3.2
2.环境:Windows 11 and JDK 11

三、原理

编程语言命名规则

驼峰命名法

如果一个标识符有多个单词组成,第一个单词的首字母小写,其余单词首字母大写。

如学生姓名 studentName

帕斯卡命名法

如果一个标识符有多个单词组成,所有单词的首字母都大写。

如学生信息 StudentInfomation

标识符

类名、方法名、变量名统称为标识符。

  • 类名使用帕斯卡命名法。如定义车类CarInfo
  • 方法名和变量名使用驼峰命名法。如定义车名carName,定义车的驾驶方法driverCar()

这个要求不是强制的,但是属于约定俗成的内容。

JAVA标识符的命名规则

  • 标识符由字母、数字、下划线、$符号组成。
  • 不能以数字开头。
  • 不能使用java中的关键字。

这些要求是强制的,如果不满足无法通过编译。

命名时尽量做到"见名知意"。

四、内容

变量

概念

属于物理概念,内存中的一块区域。该区域中的数据可以发生变化,所以称为变量。

内存中的变量,相当于酒店中的房间,房间的类型相当于变量的类型,房间的房号相当于变量名。

定义变量,就是在内存中申请一块相应数据类型的空间。

定义变量

语法:数据类型 变量名;

//定义名为name的变量,只能保存String(字符串型)类型的数据
String name;
//定义名为age的变量,只能保存int(整型)类型的数据
int age;
//定义名为isMarried的变量,只能保存boolean(布尔型)类型的数据
boolean isMarried;

如果在main方法中,定义了变量没有赋值,则无法使用。

给变量赋值

语法:变量名=值;

将等号右边的值赋值给等号左边的变量中。此时的变量名必须已定义。

//先定义
int age;
//后赋值
age=20;

double f;
f=3.14;

//不能给未定义的变量赋值
abc=123;

变量初始化

如果定义的变量能够拥有初始值时,可以直接在定义的同时赋值。

将定义变量和赋值合二为一。

int age=20;
String name="小明";

Java中的数据类型

java属于强类型语言,变量必须定义清楚制定的数据类型。

选择合适的数据类型,定义合适的变量,才能正确保存程序运行中产生的数据。

Java中的数据类型分为两大类:原始类型(基本类型)和引用类型

原始类型

数据类型分类所占字节大小范围
byte整型—字节1字节-27~27-1 (-128~127)
short整型—短整型2字节-215~215-1(-32768~32767)
int整型—普通整型4字节-231~231-1(-2147483648~2147483647)
long整型—长整型8字节-263~263-1
float浮点型—单精度浮点型4字节
double浮点型—双精度浮点型8字节
boolean布尔型1字节true/false
char字符型2字节\u0000 ~ \uffff

引用类型

  • 类class String属于类

  • 接口interface

  • 数组array

变量赋值时注意事项

  • 给整型变量赋值时,直接将数据写在等号右边。如果赋的值超出目标类型范围则无法通过编译。
//正常赋值
byte b=123;
short s=123;
int i=123;
long l=123;
//超出了byte范围会报错
byte b1=1111;
  • 给浮点型变量赋值时,默认赋的值属于double类型,只能用double接收。如果要用float接收,需要在值后加上f或F。
double d=3.22;
float f=3.21f;
  • 给字符型变量赋值时,可以
//普通字母、数字、汉字用单引号
char c1='a';
//转义字符。
char c2='\"';//这里\"表示一个双引号
//unicode字符。\u0000~\uffff
char c3='\u597d';//这里\u597d是一个"好"字
//ascii码。0-127对应了128个符号
char c4=97;//这里97表示a
  • 给布尔型变量赋值时,可以是true或false或一个逻辑表达式。
boolean f1=true;
boolean f2=false;
boolean f3=1>0;//等同于true

转义字符

在这里插入图片描述

ascii码表

在这里插入图片描述

数据类型转换

隐式类型转换(自动类型转换)

小类型的变量可以直接保存到大类型的变量中,这种情况称为隐式类型转换

int i;
byte b=100;
//b属于byte类型,只占1个字节,i属于int类型,占4个字节
i=b;//自动类型转换

显式类型转换(强制类型转换)

大类型的变量无法直接保存到小类型的变量中,如果要强制保存,需要进行转换。

转换方法:在要转换的变量前,使用**(目标类型)**

这个转换称为显式类型转换。强制转换可能会出现数据不准确。

double d=3.14;
float f;
//默认无法通过编译,需要强制转换
//f=d;
f=(float)d;//将变量d的数据类型强制转换为float

接收控制台输入

要接收控制台的输入时,需要使用Scanner类,该类位于import java.util;包中。

所以使用时,需要先导入对应的包。在IDEA中,如果是自动补全的方式创建的Scanner,会自动导包。

//导入Scanner类所在的包
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接收控制台输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int i = sc.nextInt();
        //接收回车键之前的任意内容,如果在该方法前还有接收,需要消除回车键
        //sc.nextLine();
        //String s = sc.nextLine();
        System.out.println("请输入字符串");
        //接收回车键/空格之前的内容,无需消除回车键
        String s = sc.next();
        //打印
        System.out.println(i);
        System.out.println(s);
    }
}

五、总结与分析

   好好学习,天天向上。

往期专栏
Java全栈开发
数据结构与算法
计算机组成原理
操作系统
数据库系统
物联网控制原理与技术

http://www.kler.cn/a/2876.html

相关文章:

  • AutoCad 无界面开发
  • 微擎框架php7.4使用phpexcel导出数据报错修复
  • 鸿蒙自定义UI组件导出使用
  • springboot项目中,使用ProGuard 对代码进行混淆
  • 【学习】【HTML】HTML、XML、XHTML
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • VSCode嵌入式开发环境搭建
  • kubernets 重新加入集群
  • 【进阶数据结构】——红黑树
  • 人员玩手机离岗识别检测系统 yolov5
  • DBA如何定制自动化巡检工具
  • Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~
  • 【Linux】SIGCHLD信号
  • 基于微信小程序的小区疫情防控小程序
  • 【算法】核心排序算法之堆排序原理及实战
  • 第七讲 贪心
  • Vue.js语法详解:从入门到精通
  • 如何利用WDM波分复用技术来扩展光纤容量?
  • Vector - CAPL - 检测报文周期
  • Vue2.x源码:new Vue()做了啥?
  • 给程序加个进度条吧,1行Python代码,快速添加~
  • c++ 一些常识 2
  • XILINX关于DDR2的IP的读写控制仿真
  • 【Spring Cloud Alibaba】2.服务注册与发现(Nacos安装)
  • 部署私有npm 库
  • 水文-编程命令快查手册