Java基础知识<学习笔记>

学习笔记

JAVA平台

java软件由jdk,jre,jvm组成;

java程序的运行,是在jvm虚拟机上运行,有jvm的支持,才能做到一次编译,多平台运行;

jre包含jvm和运行时的核心类库;

jdk包含了jre和java的开发工具。

JAVA环境变量的配置

为了方便java文件的使用,能在任何文件夹中使用java文件,需要在此计算机/此电脑/属性/高级系统设置/环境变量/系统变量里添加java\jdk的目录,并命名为%JAVA_HOME%,再在path里添加%JAVA_HOME%\bin的目录,以此在以后jdk更新也不用频繁变动环境变量。

 


常量

概念:常量即是在JAVA程序执行过程中不会发生改变的量。

常量的命名规则:常量单个单词全大写, 多个单词所有单词大写,单词与单词之间由下划线(_)连接;

分为字面值常量和自定义常量;

字面值常量由字符和空常量(null)组成;

1.字符串常量:使用双引号包起来的内容即称为字符串常量;

2.字符常量:使用单引号包起来的单个内容;键盘上的每一个按键都是"字符",当前这些字符单独使用的时候,不会计算,只是一个固定的字符,但是一旦这些参与运算,会计算,每一个字符都对应ASCII码表的值;

3.整数常量:常见自然数整数;

4.小数常量:又名浮点型常量,常用科学表示法进行表示;

5.布尔常量:仅有false和true;

6.空常量:null,空字符串也是字符串常量,空常量仅是null,不占用内存,常用与String类型的特殊引用;

变量

概念:变量即是在java运行过程中,不断发生改变的值;

变量的三要素:

数据类型+变量名称=初始化值

数据类型分为基本数据类型的四类八种和引用类型

基本数据类型的四类八种:

1.整数类型:byte  short  int   long

2.浮点类型:float   double

3.字符类型:char

4.布尔类型:boolean(false\true)

引用数据类型:数组,类,接口;

变量名称的命名规则:
变量名称需要符合小驼峰规则,单个单词小写,多个单词首个单词小写,其余单词首字母大写。

初始化值的注意事项:

整数类型默认为Int型,为了区分int和long型,需要在long型后标记L\l

小数类型默认为double区分float和double型,需要在float型后标记F\f

标识符

用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。

  1. 标识符由字母、数字、下划线“_”、汉字、美元符号“$”组成,第一个字符不能是数字。

  2. 不能把java关键字和保留字作为标识符。

  3. 标识符没有长度限制。

  4. 标识符对大小写敏感

关键字

是语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等;

关键字不能用作变量名、方法名、类名、包名和参数。

关键字在高级记事本或开发软件里由特殊的颜色标识出


计算规则

变量的计算遵循计算机的二进制设计原理;

使用原码,补码,反码进行计算,变量和变量进行计算要保证两者之间的数据类型一致;

字节码位最高位为符号位,0表示整数,1表示负数。

隐式转换和显式转换:

byte   short   char三个类型之间不能自动转换:

Java中byte、short、char三种类型的优先级是相同的,相同优先级之间是不能进行自动转换的,只能将低类型自动转换为高类型;

byte short char在参与运算时,会自动转换为int类型方便计算,即是隐式转换;

高类型向低类型进行转换时,由于比特位数不同,直接转换时会将高类型的多余的位数直接截取,可能会造成数据损失,计算机一般不允许高类型向低类型直接转换,

在需要将高类型向低类型转换时,可用:低目标类型 变量名 = (高目标类型)变量值   进行强制转换,即是显式转换,强制转换也适用于引用类型。

进制之间的相互转换:

十进制到任意进制:

除余法,除以进制数,直到商为0,将余数倒转排列即是该进制。

任意进制到十进制:

展开相加法:

参考二进制转换为进制的展开法,

A*X^(n-1)各位数加和=十进制,A为该位数所表示的十进制数;

二进制到任意进制

2进制转换为10进制:

8421码,各位数的加和1*2^(n-1),n为该数位数;

2进制转换为16进制:

可用性质法,转换为8进制时,将2进制3位为一位数,转换为10进制,左边位数不够三位的添0;

转换为16进制时,将2进制4位为一位数,转换为10进制,左边位数不够的添0。

任意进制到二进制:

通过十进制为中间跳板,先转换为10进制,再转换为二进制。

 

运算符

算术运算符:+,-,*,/,%
比较运算符(关系):<,<=,>=,>,==,!=

比较运算符的结果为布尔类型,false和ture两种情况; 
逻辑运算符:逻辑单与&,逻辑单|,逻辑异或^,逻辑非:! 
                   逻辑双与&&,逻辑双或|| 

双与和双或为常用类型,具有短路的作用,双与当前半为false后面即不会进行计算,双与当前半为ture后面即不会进行计算。


位运算符:位与&,位或|,位异或^,~反码 

位与(&)有1则为1,全0才为0;

位或(|)有0则为0,全1才为1;

异或(^)不同为1,相同为0

反码(~)按位取反

 


三目(三元)运算符: (表达式)? 执行true的结果:执行false的结果
                    int reuslt = (a>b) ? a: b;
区别于if分支语句,三元更像是一个运算符号,需要有承载结果的变量,而if是一个语法结构。


程序基本结构

基本结构分为三大类:

1.顺序结构

2.选择结构

3.循环结构

顺序结构从上至下,除预算符优先级外从左至右执行代码,

选择结构为存在一个条件,根据是否符合则仅执行其中一个,

循环结构为设立一个条件,若满足该条件则一直重复执行,直到不满足该条件;

if语句

格式

if语句有四种使用形式:

  • if(条件){…} 简单语句

  • if(条件){…}else{…} 双分支语句

  • if(条件){…}else if(条件){…}else{…} 多分支语句

  • if(条件){ if(条件){...} } else {...} 嵌套语句 

switch语句

格式

switch(表达式expr){

        case const1:

                 statement1;

                 break;

        case const2:

                 statement2;

                  break;

... ...

         case constn:

                 statementn;

                 break;

         default:

                 break;

}

表达式exper的值只能是byte short int char enum(枚举) String类型

case后只能跟常量值或者final的变量,不能是一个范围,所有case后的值不能想同,

default可有可无,在语句中的位置也不是固定的,

break对switch 语句必不可少,若是case后不使用break,会造成case穿透的现象,后面的条件判断直接跳过,输出所有结果,也可以用穿透现象实现一些特殊运用。

循环语句

  1. while 循环
  2. do/while 循环
  3. for 循环


while 循环

格式

while(boolean表达式){循环体}

先判断再执行

do/while 循环

格式

do{循环体}while(boolean表达式);

先执行一次循环体,再进行判断。

for 循环

格式

  1. 普通形式:for(初始值设定(表达式1);循环条件判定表达式(表达式2);变量改变表达式(表达式3)) {循环体}
  2. 嵌套形式:for(1;2;3){

      for(1;2;3){

   ...}

}


流程控制语句

break:语句用于终止某个语句块的执行

continue:语句用于跳过某个循环语句块的一次执行,继续下一次执行

(break和continue用于循环结构和switch)

return:能用于结束整个方法

System.exit(0):终止jvm的运行


方法

方法是一段用来表示特定功能的代码片段,可以被多次调用。

格式

方法:public(范围修饰) + static(静态修饰)+ 返回值类型/void +

方法名称(参数列表(数据类型)a,(数据类型)b,(数据类型)c){

方法函数+return返回值

调用方法: 方法名(参数列表a(实际数值),b(实际数值),c(实际数值));

方法:

  1. 范围修饰符不可省略,静态修饰符根据情况写出,或者不写(非静态),
  2. 返回值类型根据运行结果返回的值类型而定,没有返回的值使用void表示;
  3. 方法名称要符合小驼峰原则,且名字尽量见名知意,单个单词全小写,多单词首个单词小写,其余单词首字母大写;
  4. 方法外定义的参数为实际参数(实参),方法内为形式参数(形参);
  5. 方法函数即是得到返回值的过程,最后用return得到返回值,并且结束该方法;
  6. 在同一个类中方法之间互相平级,可互相调用不可包含。

调用方法:

  1. 接收方法值的变量类型要和返回值类型相同,否则需要使用强制转换;
  2. 参数列表数量和数据类型必须完全对应
  3. 如果一个函数返回值类型为void,则不能再调用函数的同时直接打印

方法的重载

同一个类中,方法名字相同,参数列表不同。则是重载
注意:

  1. 参数列表的不同包括,参数个数不同,参数数据类型不同,参数顺序不同
  2. 方法的重载与方法的修饰符和返回值没有任何关系
  3. 改变返回值:返回值对方法的重载没有任何影响,只改变返回值类型,其他都不改变,则对于编译器而言,则认为是同一个方法
  4. 只改变访问权限修饰符,其他都不改变,则对于编译器而言,则认为是同一个方法

 


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值