培训期间学习的java基础知识总结

final定义常量:

如果放到主函数外则需要public static final

如果放到主函数内部则不需要public static final

float 表示的变量后面必须跟个f表示单精度小数

运算符:

++(--)在前时先运算在取值,在后时先取值在运算。

if else的分支顺序不能颠倒

switch分句后面的default可以省略但不推荐省略。

基本数据类型放在栈里,引用数据类型放在堆里

student stu =new student则 stu放在栈里,student放在堆里

StringBuffer是线程安全的

使用场景:经常对字符串进行修改操作时,并且需要线程安全时

StringBuilder和stringbuffer类似,是非安全版本

缺点:

不支持线程安全

优点:

在不要求多线程安全情况下性能高

使用场景:经常对字符串进行修改操作,不需要多线程安全时使用

对象和类:

如果为public则在此可以直接赋值如果为private则必须通过setter赋值

public修饰的在其他包内依然可见,private修饰的是私有类,只能在自身类内部可见

面向对象的三个特征:封装(数据的抽象)、继承、多态

多态:有多个子类,每个子类调用相同的方法做出不同的反应

例cut()方法:

如果理发师则理发

如果是厨师则切菜

尽管一个子类从父类继承所有的方法和变量,但它不继承构造函数。

下述规则适合覆盖的方法

覆盖方法的返回类型必须与它所覆盖的方法相同

覆盖方法不能让它所覆盖的方法访问性差

覆盖方法不能比它所覆盖的方法抛出更多异常

抽象类无法实例化,抽象类可以没有抽象方法

线程同步

关于锁和同步,有一下几个要点:

1)、只能同步方法,而不能同步变量和类;

2)、每个对象只有一个锁;当提到同步时,应该清楚在什么上同步?也就是说,在哪个对象上同步?

3)、不必同步类中所有的方法,类可以同时拥有同步和非同步方法。

4)、如果两个线程要执行一个类中的synchronized方法,并且两个线程使用相同的实例来调用方法,那么一次只能有一个线程能够执行方法,另一个需要等待,直到锁被释放。也就是说:如果一个线程在对象上获得一个锁,就没有任何其他线程可以进入(该对象的)类中的任何一个同步方法。

5)、如果线程拥有同步和非同步方法,则非同步方法可以被多个线程自由访问而不受锁的限制。

6)、线程睡眠时,它所持的任何锁都不会释放。

7)、线程可以获得多个锁。比如,在一个对象的同步方法里面调用另外一个对象的同步方法,则获取了两个对象的同步锁。

8)、同步损害并发性,应该尽可能缩小同步范围。同步不但可以同步整个方法,还可以同步方法中一部分代码块。

9)、在使用同步代码块时候,应该指定在哪个对象上同步,也就是说要获取哪个对象的锁。

css样式表:

# 是div选择器div

“.”是类选择器class

“li”属于标签选择器

 

第二篇:Java基础知识总结

Java总结

标识符

? Java对各种变量、方法和类等要素命名时使用的字符数列称为标识符。

? 凡是自己可以起名字的地方都叫标识符,都遵循标识符的规则

? Java标识符命名规则:

? 标识符由字母、下划线“__”、美元”$”或数字组成

? 标识符应以字母、下划线、美元符开头

? Java标识符大小写敏感,长度无限制

? 约定俗成:Java标识符选取因“见名知意”且不能与Java语言的关键字重名

关键字

? Java中一些赋以特定的含义,用做专门用途的字符串称为关键字(keyword)。

? 大多数编译器会将关键字用特殊的方式标出

? 所有Java关键字都是小写英文。

? goto 和const虽然从未使用,但也作为被Java关键字保留。

Java常量

? Java的常量值用字符串表示,区分为不同的数据类型。

? 如整型常量123

? 实型常量3.12

? 字符常量?a?

? 逻辑常量true,false

? 字符串常量“helloword”

? 注意:区分字符串常量和字符常量

? 注意:“常量”这个名词还会用在另外其他语境中表示值不可变的变量

? 参见final关键字

Java变量

? Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

? Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式:

? type varName[=value] [{,varName [=value]}]

? 例如:

? int I = 100;

? float f = 12.3f;

? double d1,d2,d3 = 0.123;

? String s = “Hello”;

? 从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用

Java变量的分类

? 按被声明的位置划分:

? 局部变量:方法或语句块内部定义的变量

? 成员变量:方法外部、类的内部定义的变量

? 注意:类外部(与类对应的大括号外面)不能有变量的声明

? 按所属的数据类型划分:

? 基本数据类型变量

? 引用数据类型变量

Java局部变量与成员变量

? 方法体内部声明的变量(包括形参)称为局部变量:

? 方法体内部是指与方法对应的大括号内部

? 在方法体外,类体内声明的变量成为成员变量

? public void method(){

? int i;

? int j = i+5; //编译出错,变量i还未被初始化

? double d = 3.14;

? Dog dog;

? Dog = new Dog(22,1964);

? }

? 注:以上程序面前还不能编译

Java基本数据类型

? Java中定义了4类8种基本数据类型

? 逻辑型—boolean

? 文本型---char

? 整数型---byte,short,int,long

? 浮点数型---float,double

逻辑型boolean

? boolean类型适于逻辑运算,一般用于程序流程控制。

? boolean类型数据只容许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。 字符型char

? Char型数据用来表示通常意义上“字符”

? 字符常量用单引号括起来的单个字符,例如:

? Char eChar = ?a?; char cChar = ?中?

? Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:

? Char c1 = ?\u0061?;

? 注:Unicode是全球语言统一编码

? Java语言中还允许使用转义字符?\?来将其后转变为其他含义,例如:

? Char c1 = ?\n?; //?\n?代表换行

? 补充:2进制,10进制,16机制之间的转换

? 1101 ---1*1 + 0*2 + 1*4 + 1*8

? 13 ---1 + 4 + 8 --- 1101

? 1101 --- D

整数类型

? Java各整数类型有固定的表示范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移

植性。

? Java语言整型常量的三种表示形式:

? 10进制整数:12 -314 0。

? 8进制,要求以0开头,如:012。

? 16进制,要求0x或0X开头,如:0x12

? Java语言的整型常量默认为int类型,声明long型常量可以后加?l?或?L?,如:

? int i1 = 600; long l1 = 888888888888888L;//必须加L否则出错

浮点类型

? 与整数类型类似,Java浮点类型有固定的表示范围和字段长度,不受平台影响。

? Java浮点类型常量有两种表示形式:

? 10进制形式,例如:3.14 312.0

? 科学记数形式:3.14e2 3.14E2

? Java浮点数默认为double类型,如要声明一个常量为float类型,则需要在数字后面加f或F

? double d = 12323.6; float f = 12.3f;必须加f否则出错

基本数据类型转换

? Boolean类型不可以转换为其他的数据类型

? 整型,字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

? 容量小的类型自动转换为容量大的数据类型:数据类型按容量大小排序为:

? Byte,short,char->int ->long ->float -> double

? Byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型

? 容量大的数据类型转换为为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或

溢出:使用时格外注意。

? 有多种类型的数据混合也算时,系统首先自动的将所有数据类型转换为容量最大的,然后在进

行计算

? 实数常量(如:1.2) 默认为double

? 整数常量(如:12)默认为int

运算符

? Java语言支持如下运算符:

?

?

?

? 算术运算符:+、-、*、/、%、++、-- 关系运算符:>、<、>=、<=、==、!= 逻辑运算符:! 、&、|、^、&&、|| 位运算符:&、|、^、~、>>、<<、>>>

? 赋值运算符:=

? 扩展赋值运算符:+=、-=、*=、/=

? 字符串连接运算符:+

逻辑运算符

逻辑运算:!--逻辑非 &--逻辑与 |--逻辑或 ^--逻辑异或 &&--短路与 ||--短路或

赋值运算符与扩展赋值运算符

? 赋值运算符(=)

? 当”=”两侧数据类型不一致时,可以适用默认类型转换或使用强制类型转换原则进行处理

? long m = 100; int n = (int)m

? 注意:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只

要不超出其表示范围:

? byte b = 12; char c = 100;

? byte bb = 256; short s = -32769

字符串连接符

? “+”除用于算术加法运算外,还可以对字符串进行连接操作

? int id = 800 + 90

? String s = “Hello” + “World”;

? “+”运算符两侧的操作数中只要有一个字符串类型,系统自动将另一个操作数转换为字符串然后再进行

连接。

? int c = 12;

? System.out.println(“c=”+c);

? 当进行打印时,无论任何类型,都自动转为字符串进行打印

? System.out.println(c);

三目条件运算符

? 三目运算符,语法格式:

? X ? y : z

? 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达

式y的值,否则整个运算结果为表达式z的值。

语句

? 条件语句—根据不同条件,执行不同语句

? if

? if…else

? if…else if

? if…else if…else if…else

? switch

? 循环语句—重复执行某些动作

? for

? while

? do…while

if语句

?

?

?

? if if…else… if…else if… if…else if…else if…

? if…else if…else if…else

? 只有一句需要执行的语句时,可以省略{}

for循环语句

? for语句为如下形式:

? for(表达式1; 表达式2; 表达式3){ 语句;……}

? 执行过程

达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false

? for语句中三个表达式都可以省略

while & do while语句

? while语句为如下形式:

? while(逻辑表达式){语句……}

? 执行过程:先判断逻辑表达式的值。若=true则执行其后面的语句,然后再次判断条件

并反复执行,直到条件不成立。

? do while语句为如下形式:

? do{语句…} while(逻辑表达式); ? 首先计算表达式1,接着执行表达式2,若表达式2的值=true,则执行语句,接着计算表

? 执行过程:先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循

环。

break & continue语句

? break在循环体中用于强制退出循环,不再执行循环中剩余的部分

? continue在循环体内,用于终止当前的循环,返回到循环的开始处,接着开始新的一次循环。 switch语句(条件语句补充)

? switch(){

case xx:

….

case xx:

….

default:

….

? }

? 小心case穿透,推荐使用break语句

? 多个case可以合并到一起

? default可以省略,但不推荐省略

? 在switch语句里的选择值只能是字符或是常量。

方法

? Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:

? [修饰符1,修饰符2…]返回值类型 方法名(形式参数列表){}

? 形式参数:在方法调用时用于接收外界输入的数据

? 实参:调用方法时实际传给方法的数据

?

?

?

? 返回值:方法在执行完毕后返回给调用它的环境的数据。 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void Java语言中使用下述形式调用方法:对象名.方法名(实参列表) 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配

? Return语句终止方法的运行指定要返回的数据

? Java中进行函数调用中传递参数时,遵循传递的原则:

? 基本类型传递的是该数据本身。引用类型传递的是对对象的引用,而不是对象本身

递归调用

? 递归调用指在方法执行过程中出现该方法本身的调用:

总结

? 标识符

? 不用记规则,动手

? 关键字

? 局部变量vs成员变量

? 变量作用域

? 内存布局

? 基础类型变量

? 4类8种,相互转换

? 分支、循环

? 方法

? 形参、实参、返回值、返回值类型

? 递归调用

相关推荐