第一学期java基础知识总结

简介: 1.总体命名规范2.基本数据类型3.运算符4.java条件选择语句和循环语句5.数组6.面向对象7.方法

1.总体命名规范

项目名全部小写;

包名全部小写;

类名首字母大写,若类名由多个单词组成,则每个单词的首字母大写;

变量名和方法名首字母大写,若名称由多个单词组成,每个单词的首字母大写;

常量名大写。

所有命名规则必须遵循以下原则

1、名称只能由字母、数字、下划线、$符号组成;

2、不能以数字开头;

3、名称不能是Java中的关键字;

4、不允许使用中文命名。


2.基本数据类型


4种整数类型:int、long、byte、short

2种浮点数类型:float、double

1种字符类型:char

1种布尔类型:boolean


注意==和equals()的区别

" == " 比较的是值

" == " 如果比较的是基本数据类型,比较的则是变量值

" == " 如果比较的为引用数据类型,比较的则是地址值

equals比较的是引用数据类型

如果没有重写hashCode和equals方法,比较的是地址值。因为Object的equals方法中使用是" == " 。

如果重写hashCode和equals方法,则比较的重写后的规则。



/**
 * @Author: Mo
 * @Date: 2021/1/20 11:53
 */
public class Compare {
    public static void main(String[] args) {
    int i1 =200;
    int i2 =200;
 System.out.println("i1==i2: "+(i1==i2));
    Integer i3 =100;
    Integer i4 =100;
 System.out.println("i3==i4: "+(i3.equals(i4)));
    }
}


3.运算符


运算符基本分为五类:算数运算符、赋值运算符、比较/关系运算符、逻辑运算符、位运算符。

1、算数运算符


算数运算符都包括:加(+)、减(-)、乘(*)、除(/)、取模(%)、自增(++)、自减(–)、字符串连接符(+)。

使用规则:


byte/short在运算的时候会自动的提升为int,然后进行运算,运算结果为int。


同一个类型参与运算,结果的类型与参与运算的类型一致。


如果运算过程中有大类型参与了运算,结果一定是大类型


%(取模运算符/取余)

在做取余运算的时候,先按正数进行取余,然后看%左边数字的符号,如果%左边的数字是正数,那么结果就是正数。


++/–(自增自减运算)

相当于在原来的基础之上自增/自减1。

++ 在变量名之前,表示先自增,自增完成之后才会参与其他运算。

++ 在变量名之后,表示先拿变量的原来的值参与运算,然后再自增。


+(字符串拼接符/连接符)

可以利用+将两个字符串进行拼接,或者也可以利用+将任何数据与字符串进行拼接。


2、赋值运算符


十二个运算符:=(等于) +=(加等) -=(减等) *=(乘等) /=(除等) %=(取余等) &=(与等) |=(或等) ^=(异或等) <<=(左移等) >>=(右移等) >>>=(无符号右移等)

注意:除了=以外,其余的赋值运算符要求这个变量必须有初始值。

byte/short可以参与赋值运算,运算结果仍是原类型。


3.关系运算符/比较运算符


关系运算符又叫比较运算符。

七个运算符:==等于、!= 不等于、>(大于) 、<(小于)、>=(大于等于)、<=(小于等于)、instanceof(判断对象于实例的关系)。它们的结果全是boolean型

关系运算符实例:

instanceof

用于判断对象是否是否对应类的实例的。

“abc” instanceof String -> true

运算完成之后结果是一个boolean类型的值。


4.逻辑运算符


六个运算符:&与(And)、|或(Or)、!非(Not)、^异或、&&简洁与、||简洁或

1.&运算规则:

true&true=true true&false=false false&true=false false&false=false

见false为false。

2.|运算规则:

true|true=true true|false=true false|true=true false|false=false

见true为true。

3.!运算规则:

!true=false !false=true

非否即是,非是即否。

4.^运算规则:

true^true=false true^false=true false^true=true false^false=false

相同则为false,不同则为true。

5.&&运算规则:

对于&&而言,如果前边的表达式的结果为false,则后边的表达式就不再运算。

6.||运算规则:

对于||而言,如果前边的表达式的结果为true,则后边的表达式就不再运算。

注意:简洁特性可以提高代码的运算速度。


5.位运算符


7个运算符号:

&(与)、|(或)、 ^(异或)、<<(左移)、>>(右移)、>>>(无符号右移)、~(取反)

与或非运算规则:

奇数^偶数=奇数

a ^ b ^ b = a; b ^ b ^ a = a

注意:

Java中所有的数值类型的数据都是有符号的。

baty/short参加左移和右移和无符号右移结果为int。

一个数字右移几位就是将这个数字除以2的几次方,然后取整。


4.java条件选择语句和循环语句


一、条件选择语句


1、单条件选择语句

格式:if(){

}

说明:小括号里面放的是条件语句,必须值是一个boolean 类型,如果小括号里面为true 那么就执行大括号里面的执行语句,如果为false 就不执行。


二、三种循环结构


for,while,do…while 循环,本质没有任何区别都可以进行循环


三、双重for循环


循环嵌套理解:

循环的嵌套还是要记住循环的执行流程,把外层循环里面的循环看成是一个执行语句,记住每一次外层循环之后,里面的循环必须循环完成之后才会再去外层循环执行下一次。


四、循环控制语句


1、break:跳出整个循环,循环不会再执行

2、continue:跳出这一次循环,执行下一次循环

3、return:结束一个方法


5.数组


数组的定义


数组是相同类型数据的有序集合

每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。


数组的四个基本特点


1.其长度是确定的。数组一旦被创建,它的大小就是不能改变的。

2.其中的元素必须是相同类型,不允许出现混合类型。

3.数组中的元素可以是任何数据类型,包括基本类型和引用类型。

4.数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身即是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。


总结:我做算法题都是看作数学题,将数学的解题方法用Java语言表示出来,而随着对蓝桥杯的准备,我发现真正的算法应该灵活运用java语言的运算符,记住某些情况下的解题套路,巧妙解决算法题的同时考虑其时间和空间复杂度。


6.面向对象


1.万物皆对象


2.一个.Java文件中可以定义多个类但是只有一个类被public 修饰,他的类名和文件名保持一致


3.一个类并不是必须要有main方法同样一个类也不是必须要有一堆属性和一堆方法,根据需求决定


4.对象的特征——属性


属性——对象具有的各种特征


每个对象的各种属性都拥有特征值


对象的行为——方法


方法——对象执行的操作


对象——用来描述客观事物的一个实体,由一组属性和方法构成


7.方法


存在的意义


对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可。

组成

修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。


返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。


方法名:是方法的实际名称。方法名和参数表共同构成方法签名。


参数类型:当方法被调用时,传递值给参数。这个值被称为实参或变量。参数是可选的,方法可以不包含任何参数。


方法体:方法体包含具体的语句,定义该方法的功能。


构造方法,this关键字


1,构造方法


语法:

[访问符] 类名([参数列表]){

//初始化语句

}

(1)方法名和类名相同

(2)方法名的前面没有返回类型的声明

(3)方法中不能使用return语句返回一个值

类的构造器方法又分为两种:

默认构造方法:不带参数的构造方法,可以有语句,也可以没有语句;

非默认构造方法:是指带参数的构造方法;


2.this关键字


1.代指对象本身;

2.this访问本类的对象变量和成员方法 代表当前对象;

3.在构造方法中使用this 代表创建的对象;

语法格式:this.成员变量;



         

总结:面向对向的题目类似看图写话,但是当自己完成一个项目时又会感觉思路并没有那么清晰,或许大脑里要有题目一样清晰具体的思路才能快速又尽量不出错的完成项目吧。同时bug也是见过一次才能在下次遇到时游刃有余,见多才能识广,多练多看一定会有进步

相关文章
|
1月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【4月更文挑战第5天】 在现代软件开发中,多线程编程是一个不可或缺的技术要素。它允许程序员编写能够并行处理多个任务的程序,从而充分利用多核处理器的计算能力,提高应用程序的性能。Java作为一种广泛使用的编程语言,提供了丰富的多线程编程支持。本文将介绍Java多线程编程的基础知识,并通过实例演示如何创建和管理线程,以及如何解决多线程环境中的常见问题。
|
1月前
|
Java
Java中的多线程编程:基础知识与实践
【4月更文挑战第8天】本文将深入探讨Java中的多线程编程,包括其基础知识和实践应用。我们将从多线程的基本概念开始,然后深入到Java中如何创建和管理线程,以及如何使用同步机制来防止数据不一致。我们还将讨论一些常见的多线程问题,如死锁和竞态条件,并探讨如何解决这些问题。最后,我们将通过一个实际的例子来演示如何在Java中使用多线程。
|
1月前
|
Java
Java中的多线程编程:基础知识与实践
【4月更文挑战第7天】 在现代计算机科学中,多线程编程是一个不可或缺的部分。它允许多个任务在同一时间运行,从而提高了程序的效率和响应性。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发人员能够编写出高效的并发程序。本文将介绍Java中多线程的基础知识,包括线程的概念、创建和管理线程的方法,以及多线程编程的实践技巧。我们将通过实例来深入理解Java多线程编程,并探讨如何有效地解决多线程带来的问题。
|
4天前
|
Java
Java中的多线程编程:基础知识与实战技巧
【5月更文挑战第6天】多线程编程是Java中的一个重要特性,它允许我们在一个程序中同时执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动、同步和通信,以及如何在Java中实现多线程编程。通过实例代码和解析,帮助读者深入理解Java多线程编程的概念和应用。
|
4天前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第5天】在现代软件开发中,多线程编程是一个重要的概念,尤其是在Java这样的多平台、高性能的编程语言中。通过多线程,我们可以实现并行处理,提高程序的运行效率。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制方法,以及一些常见的多线程问题和解决方案。
|
9天前
|
并行计算 Java 数据处理
Java中的多线程编程:基础知识与实践
【5月更文挑战第1天】本文将深入探讨Java中的多线程编程,包括其基本概念、实现方式以及实际应用。我们将从理论和实践两个角度出发,详细解析线程的创建、启动、控制以及同步等关键问题,并通过实例代码演示如何在Java中有效地使用多线程。
|
9天前
|
存储 Java 程序员
Java中的多线程编程:基础知识与实践
【5月更文挑战第1天】在现代计算机科学中,多线程是一种重要的并行计算技术,允许多个执行流程并发运行。本文将深入探讨Java语言中的多线程编程,从基础概念到实际应用,帮助读者理解多线程的核心原理,并通过实例学习如何在Java中创建和管理线程。我们将涵盖线程的生命周期、同步机制以及如何利用高级类如Executor框架来优化多线程应用的性能。通过本文的学习,读者将具备设计和实现高效、稳定多线程Java应用程序的能力。
7 2
|
9天前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【4月更文挑战第30天】 在现代软件开发中,多线程编程是提高程序性能和响应能力的关键。Java作为一款广泛使用的编程语言,提供了丰富的多线程支持。本文将介绍Java多线程的基础概念、实现方法以及常见问题的解决策略。我们将从线程的创建和管理入手,逐步深入到同步机制、死锁避免以及高级并发工具类的应用。通过实例代码演示和理论分析,旨在帮助读者掌握Java多线程编程的核心技能,提升软件项目的并行处理能力。
|
9天前
|
存储 安全 Java
java基础知识
【4月更文挑战第30天】java基础知识
9 0
|
11天前
|
Java
Java中的多线程编程:基础知识与实践
【4月更文挑战第28天】在现代计算机科学中,多线程编程是一项重要的技术。它允许一个程序同时执行多个任务,从而提高了效率和性能。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。我们将通过实例代码来展示如何在Java中创建和管理线程,以及如何使用同步机制来避免并发问题。