java——java基础

凉城旧巷      2022-05-17     717

关键词:

Java基础

一、hello world程序

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

二、运行Java文件

// Hello.java  为一个编写的Java源码文件
// 可执行文件javac是编译器,而可执行文件java就是虚拟机。

1. javac 把  Hello.java 编译成字节码文件 Hello.class
2. 用 java 命令执行这个字节码文件
// 终端执行Java文件

// 1.  在保存Hello.java的目录下执行命令javac Hello.java
up@up123:~/xxx/xxx$   javac Hello.java      // 源码无误时不会用任何输出当前目录下会产生一个Hello.class文件

// 2. 执行Hello.class,使用命令java Hello
up@up123:~/xxx/xxx$ java Hello
// 给虚拟机传递的参数Hello是我们定义的类名,虚拟机自动查找对应的class文件并执行
// Java程序实际上是在Java虚拟机(JVM)中运行的,所以能达到跨平台的目的

注意:

  • 一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致

  • 使用javac可以将.java源码编译成.class字节码;

  • 使用java可以运行一个已编译的Java程序,参数是类名。

  • javac.exe会获得我们操作系统默认采用的编码格式,而不是java文件的编码

三、Java程序的基本结构以及命名规范

// Java是面向对象的语言,一个程序的基本单位就是class,class是关键字,这里定义的class名字就是Hello
public class Demo {
    // ...
    public static void main(String[] args) { // 方法名是main
        // 方法代码...
    } 
}

类名命名要求:

  • 类名必须以英文字母开头,后接字母,数字和下划线的组合
  • 首字母大写,采用驼峰体,如 MainClass

方法命名要求:

  • 类名必须以英文字母开头,后接字母,数字和下划线的组合
  • 首字母小写,采用驼峰体,如 calculateNumber,goodElement

注释:

  • // 单行注释
  • /* xxxx */多行注释

四、基本数据类型

基本数据类型即CPU可以直接进行运算的类型

1、基本数据类型

  • 整数类型:byte,short,int,long
  • 浮点数类型:float,double
  • 字符类型:char
  • 布尔类型:boolean

2、数据类型在内存中的大小

计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit

数据类型 内存大小/字节(B)
byte 1
short 2
int 4
long 8
float 4
double 8
char 2

3、基本数据类型详解

// 整型    byte    short   int    long
对于整型类型,Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)。各种整型能表示的最大范围如下
·byte:-128 ~ 127
·short: -32768 ~ 32767
·int: -2147483648 ~ 2147483647
·long: -9223372036854775808 ~ 9223372036854775807

// e.g.
int a = 10;
// 浮点型    float  double
浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如1234.5可以表示成12.345x10^2,也可以表示成1.2345x10^3,所以称为浮点数。
·float类型可最大表示3.4x10^38,而double类型可最大表示1.79x10^308
·float类型需要在数据后面加 f
·使用科学计数法   12.345x10^2 ===>   12.345e2

// e.g.
float a = 3.14f;
float a = 3.14e10f;
double a = 2.5343;
double b = -2.5343e5;
// 布尔类型    boolean
布尔类型 boolean 只有true和false两个值,布尔类型总是关系运算的计算结果:

// e.g.
boolean b1 = true;
boolean b2 = false;
// 字符类型    char
字符类型 char 表示一个字符。Java的 char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符
·注意char类型使用单引号'',且仅有一个字符,要和双引号" "的字符串类型区分开。

// e.g.
char a = 'c';
// 常量    final
定义变量的时候,如果加上 final 修饰符,这个变量就变成了常量

// e.g.
final int a = 10;
PI = 3.14;

4、类型自动提升与强制转型

(1)类型自动提升

在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,shortint计算,结果总是int,原因是short首先自动被转型为int

int a = 5;
double b = 2.5;
System.out.print(a/b);     // 结果为double类型

(2)强制转换

int a = 300;   // 00000000 00000000 00000001 00101100
byte b = (byte) a;     // 舍弃高位的3个字节  00101100
System.out.print(b);      // 44     00101100

五、整型运算符

1、基本运算

//  基本运算
+、-、*      // 加减乘
/       // 表示除法,结果为商的整数部分
%      // 表示取模,获取除法的余数部分

// 简写
+=、-=、*=、/=

a += 1;    // a = a + 1
// 自增、自减运算
++
--

++n表示先加1再引用n
n++表示先引用n再加1

2、移位运算

// >>    <<
整数总是以二进制的形式表示,利用二进制对整数进行移位运算
		// 当最高位为0时表示整数,为1时表示负数

int a=7;   //		  00000000 00000000 00000000 00000111
int b = a << 2;  //   b = 28   		  00000000 00000000 00000000 00011100
int c = a >> 2;  //   c = 1  	    00000000 00000000 00000000 00000001
int d = a << 29;  //  d = -536870912  	 11100000 00000000 00000000 00000000

3、位运算

位运算是按位进行与(&)、或(|)、非(~)和异或(^)的运算

& 与 运算的规则是,必须两个数同时为1,结果才为1
| 或 运算的规则是,只要任意一个为1,结果就为1
~ 非 运算的规则是,0和1互换
^ 异或运算的规则是,如果两个数不同,结果为1,否则为0

n = 0 & 1; // 0
n = 0 | 1; // 1
n = 0 ^ 0; // 0
n = 0 ^ 1; // 1

4、运算优先级

优先级从 高 到 低以下:

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

六、布尔类型运算符

对于布尔类型boolean,永远只有truefalse两个值

1、运算符

比较运算符:>,>=,<,<=,==,!=
与运算 &&
或运算 ||
非运算 !

运算优先级:

  • 比较运算符:>>=<<===!=
  • 与运算 &&
  • 或运算 ||
  • 非运算 !

2、短路运算

&&   //  a>1 && b/0>1     如果a大于1为false,那么直接返回false,不会计算后面的条件,即使后面的条件会报错
||    //  a>1 || b/0>1     如果a大于1为true,那么直接返回true,不会计算后面的条件,即使后面的条件会报错

七、字符类型

字符类型char是基本数据类型,它是character的缩写。一个char保存一个Unicode字符

因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节

char c = 'a';
char d = '中'

八、字符串类型——引用类型

字符串类型是引用类型

注意要区分空值null和空字符串"",空字符串是一个有效的字符串对象,它不等于null

String s = "string";

String s1 = "";
String s2 = null;
System.out.print(s1 == s2)   //  false

九、数组类型——引用类型

// 定义一个数组
int[] array = new int[5];    // 使用默认值,长度为5

int[] ns = new int[] { 68, 79, 91, 85, 62 };     // 直接为数组设置元素,不用指定长度

·数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;
·数组一旦创建后,大小就不可改变。

java基础

Java基础内容 a.Java程序入门 b.Java中的变量和表达式 c.Java中的控制流语句 d.Java中的数组 e.常用算法Java程序入门: 1.Java的组成 a.Java语言 b.Java虚拟机(JVM:JavaVirtualMachine) c.Java应用程序编程接口(JavaAPI:JavaApplicationProgrammingInterfa... 查看详情

java基础-内部类

Java基础,简单小结Java基础,简单小结 查看详情

重学java基础第二十三课:java基础注释

    查看详情

java最强最新知识体系总结(2021版)

一、Java基础知识1、基础知识分类内容链接Java基础【Java知识点详解1】缓存链接1Java基础【Java知识点详解2】动态代理链接2Java基础【Java知识点详解3】序列化与反序列化链接3Java基础【Java知识点详解4】泛型链接4Java基础【Java知识... 查看详情

零基础学java—java基础知识

【零基础学Java】—Java基础知识(四)👏芳华正茂始少年👏👏时光正好👏👏👏未来可期一、Java转义字符publicclassChange publicstaticvoidmain(String[]args) //制表位\t实现对齐功能System.out.println 查看详情

java入门笔记1——基础概念和基础语法

参考书:《Java语言程序设计与数据结构(基础篇)》——梁勇文章目录​​一、基础概念​​​​1.Java语言规范、JDK、JRE、JVM、IDE​​​​2.Java的加载与执行​​​​3.java中的源文件名、类名和main方法​​​​4.关于packet​​... 查看详情

java基础面试java基础问题

Java基础问题1.==和equals的区别是什么?2.两个对象的hashCode()相同,则equals()也一定为true,对吗?3.final在java中有什么作用?4.String属于基础的数据类型吗?5.Java中操作字符串都有哪些类?它们之间... 查看详情

java基础(十五):异常处理(代码片段)

Java基础系列文章Java基础(一):语言概述Java基础(二):原码、反码、补码及进制之间的运算Java基础(三):数据类型与进制Java基础(四):逻辑运算符和位运算符Java基础(五):流程控制语句Java基础(六):数组Java... 查看详情

java基础java基础语法

一、内容注释关键字标识符常量、进制和进制转换变量数据类型和类型转换运算符语句 二、注释注释概述用于解释说明程序的文字Java中注释分类格式单行注释格式://注释文字多行注释格式:/*注释文字*/文档注释格式:/**... 查看详情

java基础

java基础基本数据类型byte/8----------------------->Bytechar/16---------------------->Charactershort/16--------------------->Short(java8中缓存池的默认大小-128~127)int/32------------------------>Integer(java8 查看详情

java基础:java基础之三大特性

我是ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。如果小伙伴们觉得不错就一键三连吧~点击此处跳转:Java三大特性:封装,继承与多态 查看详情

java基础:java基础之三大特性

我是ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。如果小伙伴们觉得不错就一键三连吧~点击此处跳转:Java三大特性:封装,继承与多态 查看详情

零基础如何迅速学好java

  对于零基础的朋友来说,能够迅速的学好Java,那将是一件特别有成就感,也特别有快感的事情,但是零基础如何迅速学好Java?这就是零基础朋友特别苦恼的问题,你在学Java的时候有什么秘招可以分享吗?今天长沙尚学堂小编... 查看详情

java基础学习

java基础学习  (一)Java基础 1.1Java语言特点  1.面向对象(封装,继承,多态)  2.平台无关性(Java虚拟机实现平台无关性,一次编译,到处运行)  3.简单易学(Java的面向对象更接近人的语言习惯)  4.安... 查看详情

零基础学java步骤有哪些?

零基础学Java步骤有哪些?对于零基础的学员来说,如何从基础开始逐渐深入学习,最后成为一名合格的Java开发人员非常重要,下面就给大家罗列一下学习步骤:  第一阶段:Java基础以及Web开发基础—小程序项目阶段,让学员... 查看详情

第3篇-java基础

第3篇-JAVA基础每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程初学心得:遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识(笔者:JEEP/711)[JAVA笔记|时间:2017-03-26|JAVA基础Ⅱ]上篇回顾上篇文... 查看详情

java基础--java入门

IsCoder标记:Java基础,Java环境配置一.Java环境配置JavaDevelopKit(JDK安装)系统环境变量设置(JAVA_HOME)Java源程序编辑工具Java编译运行命令运行经典的HelloWorld程序1.1JDK安装JDK,就是甲骨文公司提供给我们的Java开发工具包,包括最常用的Javac.ex... 查看详情

java基础|debug模式及基础练习

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。 查看详情