Java编程

Java的起源和发展

创始人:詹姆斯   高斯林

诞生公司:sun公司

现在公司:oracle公司

LTS(long  time  support)版本:又叫长期支持版本(8/11/17)

Java的平台版本

JavaSE(Java标准版):主要用于PC应用的开发

JavaME(Java微型版):主要用于移动设备嵌入式设备开发 ,安卓,是用Java开发的

JaveEE(Java企业版):主要用于企业级应用的开发(CRM、OA、政府、银行的管理系统)

软件

什么是软件,软件就是程序和数据的结合体

程序

什么是程序:是用来处理数据的计算机指令的集合

编程语言

什么是编程语言:是用来书写计算机指令的语言

编程语言的发展史

机器语言:由0和1两个数字组成,它是计算机唯一能够直接识别的编程语言。

它有优缺点

优点:程序的执行速度快

缺点:可阅读性低、可记性低、可移植性低、可维护性(拓展)低

汇编语言(又叫低级语言):

加入了助记符(帮助记忆符号),提升了代码的可读性,降低了代码的记忆难度

高级语言

高级语言更加符合人类的习惯

翻译过程:

一个是编译一个是解释

编译:将源代码,经由编译器一次性翻译(编译)成目标代码文件(由机器怨言组成的文件二进制文件),以后执行程序时,执行目标代码文件(C、C++编译型语言)

解释:将源代码,经由解释器逐行解释(翻译),得到结果,以后每次执行都是执行源代码文件(JavaScript解释型语言)

两种翻译过程的区别:

1、运行速度,编译是一次性将我们的源代码文件翻译为目标代码文件,以后执行都是执行目标代码文件,运行速度相对快;解释是在解释器中逐行翻译源代码,每次执行都需要重新翻译一次,运行速度相对慢

2、跨平台,编译产生的目标代码文件是针对平台而翻译出的,因此编译无法做到跨平台;解释是直接在不同平台的解释器中去运行

标识符:

标识符是打上标记帮助识别的符号

给Java中的类、方法、变量和常量等的名称

标识符的命名规则(语法层面)

​    1、标识符的组成,由数字、字母、下划线(_)、美元符号($)

​    2、不能以数字开头

​    3、严格区分大小写

标识符的命名规范

​    类名:首字母大写,如果类名由多个单词组成,后续单词的首字母大写(Hello   World           大驼峰命名法)

​    方法名/变量名:首字母小写,如果方法名/变量名由多个单词组成,后续单词的首字母大写(hello  World        小驼峰命名法)

​    常量:所有字母全部大写,如果常量名称有多个单词组成,单词与单词之间用下划线(_)分割(HELLO_WORLD                 蛇形命名法)

​    见名知意 (看见名字就知道意思) :可以用单词或汉语拼音全拼,建议用单词,英语差的也可以用百度翻译。

标识符的分类:

​    语言预定义:标识符---关键字(50个左右),它们都有特殊含义

​    用户自定义:标识符分为先人(这里的先人是先前的先辈们写的)自定义标识符和开发者自定义标识符

基本概念和语法

注释:用来描述代码的功能,起提示作用,在Java编译器编译Java文件时,会忽略注释

注释有三种:

// 单行注释 , 快捷键ctrl+/

/**/:多行注释

/**     文档注释   */     :一般情况下,在类、变量、常量和方法上 javadoc 命令生成API文档(字典)

类的基本结构(类的定义)public class 类名{ }

1.public修饰符的类名必须和文件名相同

2.修改文件名 鼠标右键选择refactor进行重新修改

数字在计算机中的存储

为了负数的存储,会将二进制数的最高位设置为符号位

0正数 1负数  一个字节能够存放的数据-128——127

在内存中数据的存储都是补码进行存储

原码:十进制数转为二进制后的数就是原码

反码:以原码为基础,符号位不变,其余位取反(0->1 ,1-0)

补码:在反码的基础上加1 注意:正数的原码、反码、补码都一样

数据类型

数据类型的作用:告知计算机以何种方式存储数据,告知计算机开辟多大的空间存储数据

分类:基本数据类型(4类8种)和引用数据类型()String--字符串

整型:byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节)

浮点型:float(4个字节、单精度浮点数)、double(8个字节、双精度浮点数)

字符型:char(2个字节)、字符在计算机中依然是以二进制进行存放,为了更好的存储字符,为全世界的符号的统一进行了编码(万国码、unicde码),最终以数字编码来表示字符,48-57:0-9、65-90:A-Z、97-122:a-z

布尔型:boolean无固定字节,由JVM虚拟机决定,表示逻辑状态。只有两个取值:true(真) false(假)

变量声明语法:数据类型 变量名

变量的本质:在内存中划分的空间用来存储数据,数据在程序运行过程中允许修改的

常量声明 :final 数据类型 常量名 = 常量值

常量定义好,不可被修改的量

注意:养成先申明在使用,声明的同时初始化的习惯,数据类型 变量名 = 变量值;

变量名是标识符,首字母小写,如果有多个单词组成,后续单词的首字母大写

变量的生命周期,始于声明,终于离它结束最近的花括号

运算符

算数运算符    +    -     *     /     %(求余), 在Java中两个整数做除法,结果为整数

数据参与运算时,结果会自动转换为参与运算的数据类型中精度更高,空间更大的类

赋值运算符    =(赋值)    +=(加赋值)    -=(减赋值)     *=(乘赋值)     /=(除赋值)     %=(求余赋值)     ++(自增)     --(自减)

++或-- 放在变量前,该变量会先自增(减),在做运算

++或-- 放在变量后,该变量会先参与运算,在做自增(减)

比较运算符   >    <     >=(大于等于)      <=(小于等于)      ==(等于)     !=(不等于)

三目运算符 布尔表达式 ? 数据1 :数据2

运算结果为布尔值的算式 叫布尔运算符

布尔表达式 结果为真 ,可以返回  :  前的数据(表达式运算结果),结果为假返回  :  后的数据(表达式运算结果)

逻辑运算符

&&:并且

布尔表达式1   &&   布尔表达式2 结果都为真, 则表达式则整体结果为真 ,只要有一个为假,都是假

||: 或

布尔表达式1   ||   布尔表达式2 只要有一个为真,则表达式整体为真,只要有两个表达式都为假,就是假

!:非

! 布尔表达式,非假为真,非真为假(真的就是假的,假的就是真的)

^:异或

布尔表达式1^布尔表达式2 ,如果布尔表达式1和布尔表达式2结果为一真一假 ,则整体都为真,两真两假都是假

短路与非短路运算符

短路  &&    || :第一个布尔表达式能够决定整体结果时,第二个布尔表达式就不会执行

非短路  &    | :不管第一个结果如何,第二个表达式都会执行

数据类型转换

自动类型转换:发生在运算符两端数据类型不一致时

两个整数做运算时,结果默认是int类型的数据

口诀:小(字节)转大 ,低(精度)转高

byte , short , char < int < long < float < double

在转换时,整型与整型之间的转换,考虑字节,整型和浮点型转换会考虑精度 ,boolean不参与数据类型转换

强制类型转换:发生在对数据有要求时,利用强制类型转换的语法对数据类型进行转换,可能会出现的精度丢失的情况

强制类型转换语法: (目标数据类型)数据

口诀:大(字节)转小 ,高(精度)转低

输出语句

System.out.println(数据) 系统输出打印换行语句

System.out.print 系统输出打印语句

String 字符串(引用数据类型):相当于多个字符进行串联,使用双引号进行包裹

字符串的拼接 + 做连接

字符串在前,先做字符串的拼接

字符串在后,先做运算再把运算结果与字符串做拼接

转义字符:\字符,可以把原本具有特殊含义的字符,转换为普通字符。 \':单引号 \":双引号 \n:换行

输入语句

1.声明一个输入器

数据类型 变量名 = 变量值

Scanner scan = new Scanner(System.in);

import java.util.Scanner;

public class Scanner {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int nnumber = scan.nextInt();
     
    }

}

声明整型变量结束输入器的信息

算法

什么是算法:算法是解决问题的方法或步骤

有穷性:一个算法必须在执行有限个操作步骤后终止

确定性:算法每一步的含义必须是确切的,不可出现任何二义性

有效性:算法中的每一步操作步骤都应该有效执行,一个不可执行操作

有零个或多个输入:输入是指在算法开始之前所需的初始数据,这些输入的多少取决于特定的问题

一个或多个输出:输出是算法执行得到结果,在一个算法中至少一个结果,如果没有输出,它就毫无意义

分支语句

if 语句

单分支 if 语句

条件表达式:本质是布尔表达式(结果为布尔值)

执行顺序:先做条件判断,判断结果为真,进入if 语句执行
 

if (条件表达式){

   语句块

}

双分支if语句  

if(条件判断){  

     语句块1    

  }else{  

     语句块2  

    }

执行顺序:先做条件表达式判断,如果为真,就会执行语句块1;如果为假,就会执行语句块2

多分支if语句

 if(条件表达式1){
        语句块1
       }else if(条件表达式2){
        语句块2
       }else if(条件表达式3){
        语句块3
       }
        .......
       else{
        语句块n
       }

switch语句

switch - case


switch (表达式){
case  数据1 :语句块
             break
case  数据2 :语句块
            break
case  数据3 :语句块
            break
case  数据4 :语句块
            break
default : 语句块
            break
}
顺序:计算表达式结果,把结果和case后数据对比,比较成功,就会执行case后的语句块内容,
如果全部不成功,执行default后的代码块
注意:switch (可以放 byte、short、int、char、String类型的值)

if switch 的区别:

if 在做比较时,可以比较值也可以比较范围   ==     >=      <= ,switch语句,只能比较值

if 语句在进行比较时,只能接收布尔值,switch语句,可以接收byte、short、int、char、String类型的值

循环

循环:重复执行某些含有规律的指令语句过程

循环是由反复被执行的循环体语句和循环终止条件共同组成

循环语句

for循环

使用于明确知道循环次数

一般情况下必须个三个表达式,有些特殊情况可以省略其中的表达式
 

for(表达式1 ; 表达式2 ; 表达式3 ){   

循环语句  

}

 代码执行顺序:

先执行表达式1(通常用于计数变量的声明,计数变量是用于计算循环次数的变量)

表达式2(书写循环终止的条件)判断,如果判断结果为真,循环继续  

3 执行循环语句(用于改变计数变量的值)

4 执行完循环语句后,执行表达式3(用于改变计数变量的值)

2 > 3 > 4 > 2 >3 > 4 > 2   直到2判断结果为假就结束

while

使用不知道循环具体次数,只知道达到某个条件的时候循环结束

while (条件表达式){
    循环语句
}
顺序:先做条件表达式判断,判断为真,执行循环语句内容,执行完成,再做条件表达式判断,如果判断为真继续,为假终止循环
注意:和for循环不同的是while循环没有专门用于计数变量的声明以及计数变量值改变指令

do-while

使用不知道不循环具体次数单至少执行一次,只知道达到某个条件循环结束

do{
    循环语句  重复被执行的代码
}while (条件表达式);
​
执行顺序:先执行循环语句内容,然后在做条件表达式判断,判断结果为真,在执行循环语句内容,判断为假,循环终止

循环分类

先验循环:首先执行条件表达式判断,后执行虚幻语句的循环 for 、while

后验循环:先执行循环语句,后执行条件表达式判断循环 do-while

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值