第一学期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也是见过一次才能在下次遇到时游刃有余,见多才能识广,多练多看一定会有进步

相关文章
|
5月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
40 1
|
6月前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第29天】 在现代软件开发中,多线程编程是一个不可忽视的领域。特别是在Java这种广泛使用的编程语言中,掌握多线程的概念和技术对于开发高效、响应迅速的应用程序至关重要。本文将深入探讨Java多线程的核心概念、实现机制以及常见问题的解决方案。我们将从基础出发,逐步揭示如何通过多线程提升程序性能,并且讨论并发编程中的挑战和解决策略。文章的目的是为开发者提供一个清晰的多线程编程指南,帮助他们在实际项目中有效地应用这些知识。
37 3
|
6月前
|
Java 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第26天】 在现代计算机科学中,多线程编程是一个复杂且强大的概念。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发者能够创建出更为复杂、高效和响应迅速的应用程序。本文将深入探讨Java中的多线程编程,从基础概念到实际编程技巧,为读者提供全面的理解和实践指导。
|
6月前
|
监控 IDE Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第30天】 在现代软件开发中,多线程编程是提高应用程序性能和响应能力的关键。特别是在Java这样的多平台、多用途的编程语言中,掌握多线程技术至关重要。本文旨在为读者提供有关Java多线程编程的全面介绍,从基本概念到高级应用技巧,帮助初学者和有经验的开发者理解并有效使用多线程。文章不仅涉及基础理论,还包括代码示例和最佳实践,确保读者能够将知识应用于实际项目中。
|
6月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第28天】 在现代计算机科学中,多线程编程是一个重要的概念,它允许程序同时执行多个任务。在Java中,多线程编程是通过创建并管理线程来实现的。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制线程的方法,以及线程同步和通信的相关技术。通过阅读本文,读者将对Java中的多线程编程有一个全面的了解,并能在实际编程中应用这些知识。
|
6月前
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
|
6月前
|
安全 Java
Java基础知识面试总结(全面,实时更新)
Java基础知识面试总结(全面,实时更新)
|
6月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
6月前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
6月前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。