java基础知识学习笔记

java基础知识学习笔记

一,程序基础概念

程序基础概念

  1. 软件是指完成某些特定功能。
  2. 一到多个程序文件的集合。
  3. 软件=程序+程序+程序+............。
  4. 程序完成指定功能的多条指令。

计算机语言;可以和计算机进行交流的语言

机器语言

  1. 是由0和1二进制代码组成的语言。
  2. 机器语言是直接有电脑cpu执行的。

优点;执行速度快。直接由CPU执行。 缺点;复杂,难学,难写。

汇编语言

优点;目标代码简短,占用内存少,执行数度快,能访问控制各种硬件设备。 缺点; 和机器语言一样难学,难写。

高级语言(java语言)

  1. 编译和运行是两个概念,编译是看语法有没有错误,运行是看逻辑有没有错误
  2. JAVA语言是解释性语言,汇编语言,机器语言都是编译性语言。

    编译;老师直接告诉学生。 解释;老师告诉班长再由班长解释给学生听。

语言的发展

1975年-1962年;FORTRAN 语言。 1963年;BASIC 语言。 1972年;C 语言。 1985年;c++ 语言。 1995年;JAVA 语言。 2000年;C# 语言。 C#语言和Java语言是竞争对手。

程序设计

  1. 分析问题;确定题目是什么,软件需求是什么。
  2. 确定数据结构和算法;算法可以用任何形式的语言和形式来表示。
  3. 确定数据存放的位置;为自己的程序安排好一个合适的位置。
  4. 程序编写;开始编写代码。
  5. 调试程序;一步一步解决问题。

流程图

  1. 以圆形开始,圆形结束。
  2. 平行四边形代表输入输出。
  3. 菱形代表判断。
  4. 长方形代表处理。

算法概述

  1. 算法都是又开始有结束。
  2. 有参数,有结果,有输入。
  3. 非数学算法,就是逻辑算法。

错误类型

开发错误

语法错误。 逻辑错误。

运行错误

内存溢出。 储存空间不足。

二,Java基本概念

Java的起源

Java一开始是为家电而设计的,由于其特点适合用于网络,于是很快流行成为了 一个平台,一种计算机语言,一个网络计算的架构。 Java源于一个美丽的误会。java是"Green计划"创造的语言! 最早的名字是Oak,一直到95年孙公司将Java发布到网上免费试用。 Java吉祥物是一个咖啡豆,Java的形象代表是咖啡 Java之父是James Gosling

Java的划分

JavaSE;Java的标准版用于标准的应用开发,适用于Pc既笔记本电脑。 JavaME;微型版,常用于手机上的开发,家电设备,嵌入式开发。 JavaEE;用于企业版的应用的开发,服务器端开发。

Java的特点

  1. 简单性
  2. 面向对象
  3. 跨平台

Java虚拟机简称JVM

Java的执行过程;通过虚拟机中的解释器实现 对于不同的平台有不同的虚拟机。 屏蔽底层平台的差异,“一次编程,随处运行”。 虚拟机工作原理; 先加载启动类库。 在加载扩展类库。 最后加载用户自定义类库。 正常的类库加载顺序可以避免一些非法代码的执行。可以提高代码的安全性! 源文件>的Java编译器>字节码Cclss文件>类转载器>字节码效验解决器>操作系统平台。4 . 健壮性与安全性,强类型机器,异常处理,异常少!5.多线程能够同时运行多向任务,同时做一件事,Java实现多线程相对于其他语言具有独特的优势6.垃圾回收,c ++是需要程序员人工回收垃圾,清楚无用内存的.java是自己回收无用垃圾。

JDK和JRE;

java -version;查看jdk的版本 JDK叫做Java开发工具集包括了jre;给用户用的 编译环境 运行环境 调试环境 基本类库 JRE又叫做Java运行环境,给开发人员用的 虚拟机 核心类库 以及连接文件 JDK包含了JRE.

基本概念;

Java是一种面向对象的语言,类是Java程序的基本构造单元,Java中所有的语句都出现在一个类中 面向对象是一种看待问题和处理问题的方式,本质上就是人类的直观思维!面向对象包含两个概念

  1. 对象;就像日常生活中的东西,对象主要由,属性和行为组成。
  2. 类;生成对像的模板,Java是一种解释性语言!

Java源文件是".Java文件",编译后是”.clss文件“, Java中入口函数是main函数。Java中函数叫方法!

三,Java语言基础

关键字!

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

标识符

硬性规则

关键字不可以做标识符! 标识符可以用字符,数字,_下划线,$美元符号 标识符的第一个字母只能用字母,_下划线,$美元符号 标识符区分大小写,没有规定长度

软性规则

要望文知意, 标识符首字母小写 除第一个单词外其他单词首字母大写。 遵循驼峰命名法则。

数据

什么是数据;数据就是有用的信息。

数据类型

8种基本数据类型

数据类型 描述
byte Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0
short 短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0
int 整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
long 长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L
float 浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double 双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
char 字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
boolean 布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

引用数据类型;

类,接口,数组

类型转换

单精度/双精度

浮点型的默认类型是型double,float转double是隐式转换。double转float需要在后边加f。 double和float计算过后得到的结果是double,要想得到float必须在后边加f,或强转。

浮点型/整形

浮点型转整形必须强转,整形和浮点型计算后返回的是浮点型,需要强转; 整形不同类型运算了,结果会是内存空间大的类型。 强转;在数据和变量前面加“(类型)” 例; int b =(int)a

常量

字面常量 ;看到符号就知道是常量生活中的数字,汉子 符号常量,给字面常量起名字; 为什么定义常量;

  1. 把业务含义带入到常量里去
  2. 便于修改 具有固定的值,其值在运行中不会发生改变。 写法;在变量语法前加fimal、

变量

变量的声明;指定一块内存空间来存放数据。 变量的赋值;将数据放到变量的内存空间。 变量的作用域,在大括号里有效,离开大括号无效。 全局变量有构造方法赋默认值局部变量没有赋值不能使用; 先声明后赋值

运算符

算数运算符

操作符 描述 例子
  • | 加法 - 相加运算符两侧的值 | A + B 等于 30
  • | 减法 - 左操作数减去右操作数 | A – B 等于 -10
  • | 乘法 - 相乘操作符两侧的值 | A * B等于200 / | 除法 - 左操作数除以右操作数 | B / A等于2 % | 取模 - 左操作数除以右操作数的余数 | B%A等于0

++ | 自增: 操作数的值增加1 | B++ 或 ++B 等于 21(区别详见下文) -- | 自减: 操作数的值减少1 | B-- 或 --B 等于 19(区别详见下文)

关系运算符

操作符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假(非真)。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。

| 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A > B)非真。 < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A < B)为真。 >= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A >= B)为假。 <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。

位运算符

& ;与;要求前后几个表达式只要有一个true,则最终结果就是true, 如果全都是false,则最终结果才是false; | ;或;当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110 ^ ;异或;只要表达是中有一个部分为真和一个部分为假就为真 ! ;非;对布尔取返,两边的位不同时,结果为1,否则为0.如1100^1010=0110 ~ ;求反位操作

操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位补运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数,a*b的b次方。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数,a/b的b次方。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

逻辑运算符

&& ;短路与;要求前后几个表达式的内容都是true,最终结果才是true, 如果有一个是false,则最终结果就是false; || ;短路或;a||b:只有a与b都为false,结果才为false;有一个为true,结果为true。

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
|| 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A || B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。

####赋值运算符

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
  • = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A等价于C = C + A
  • = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A等价于C = C - A
  • = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A等价于C = C * A /= | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A等价于C = C / A (%)= | 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 | C%= A等价于C = C%A << = | 左移位赋值运算符 | C << = 2等价于C = C << 2 >> = | 右移位赋值运算符 | C >> = 2等价于C = C >> 2 &= | 按位与赋值运算符 | C&= 2等价于C = C&2 ^ = | 按位异或赋值操作符 | C ^ = 2等价于C = C ^ 2 | = | 按位或赋值操作符 | C | = 2等价于C = C | 2

条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

Java运算符优先级

操作符 描述 例子
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 >> = << = 左到右
相等 == != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

注释

单行注释 // 多行注释 /* */ 文档注释 /** * */

其它

取个位。十位,百位,千位,万位的数字

54345/10000=5 //万位,int型直接省略小数 (54345-500000)/1000=4 //千位 (4345-4000)/100=3 //百位 (345-300)/10=4 //十位 45-40=5 //个位

注意

(1) 0^0=0,0^1=1 0异或任何数=任何数 (2) 1^0=1,1^1=0 1异或任何数-任何数取反 (3) 任何数异或自己=把自己置0

默认值

整形的默认值是0; 字节型的是0;//显示一个空null 布尔型的是false; 字符型的就是空;null,

大写转小写

基本转发;(字节型转换) ('a'+32)='A'; ('A'-32)='a'; a转b ('b'-1)='a'; ('a'+1)='b'

容易出现的错误;

下标越界 空指针

内存转换

(1b=1字节,8位=8bit/比特,1kb=1千字节,1mb=兆字节,1GB=1吉字节,1Tb=太字节) 1b=8bit,1kb=1024b,1m=1024kb,1g=1024m,int 4个字节,32位

注意

  1. 不同的数据类型在内存中所占得内存长度不同,
  2. 变量在进行使用与运行时必须进行初始化否则会报错。
  3. 变量定义了类型就不能在存放其它类型的数据。否则会报错。
  4. int类型的变量尽量不要使用浮点型来声明,不会报错但效率不高。
  5. %;取模两边必须是整数;
  6. boolean的大小是不固定的
  7. 变量要先赋值在使用

四,Java基本语法一

判断/选择

if判断;

格式;

if(条件){
语句1
}else if(条件二){
语句2    //else if可以有无限多个
}else{
语句三
}

switch选择;

条件无法表示一个范围 条件只能是byte,int ,char; 条件与条件1相等就执行条件1后边的代码。 条件1和其他条件不能相同

格式;

switch(条件){
case 条件1:  //case 条件;可以有无限个
代码
break;//没有break就会依次执行
default:
没有与条件匹配的就把执行
break;
}

if和swite可以互相转换。

循环

for循环;

for(表达式;条件;表达式){
    循环体 //条件满足结束循环
}

while循环;

while(条件){//条件满足退出循环
循环体
}

for--each循环;

用于遍历数组,只可以遍历,无法修改

for(int num;array){
循环体 //unm是下标,array是数组
}

do while循环;

do{
循环体 //比while循环在第一次实多执行一次
}while(条件);

结束循环语句;

break;结束这个循环; continue;结束本次循环;

数组

数组的要素

  1. 数组类型一旦确定不能改变;必须规定数组长度,数组中数据必须是同种类型。
  2. 连续空间存放,查询效率高。
  3. 数组有自己的长度,初始化时定义,通过下标访问。
  4. 数组的下标是从零开始,第一个元素下标0,最后一个元素下标为下标总长,
  5. 数组可以保存基本和引用两种数据类型
  6. 获取数组总长度 array.length
  7. int [] array={1.2.3.4.5} //后边的值只能写在一行;有多少个数数组的长度就是多少。

数组写法

例;

声明 int [] array; //array 数组变量名 实例化; array = new int[a]; //a 数组长度 赋值; array[b]=10; //b 是下标

数组是引用类型,引用类型有栈 和堆;

如上array就是栈 new int[a];就是堆 变量的大小取决于类型的精度; 数组下标要依次赋值不能跨越赋值,跨越赋值就会出现下标越界

多维数组

格式;

int [][] array = new int[a][b]; //a代表长度,a必须要定义 大括号定义; int[][]array={{1,2,3},{1,2,3},{1,2,3}}; 多维数组求长度; (array[a].length)

函数方法(函数又叫方法,在Java中函数就叫方法)

方法的理解(调用-参数-返回值)

  1. 方法只有调用时才分配空间。

  2. 函数之间可以互相调用,调用的次数没有限制

    格式;

    //int a 是参数,形参,void代表返回类型,没有返回类型就是void, //metod 是方法的名称,public 方法是否属于公共 public代表公共 private代表私有。 public static void metod(int a,int b){ return a; //参数的返回值 }

    方法的调用;

    方法名(实参);例;metod(1.2); 返回值;retur n 值;

参数;

在方法上的参数叫形参,调用时的参数叫形参。 参数之间是值传递! 实参和形参的类型和个数必须一样;

方法的从载

函数名称相同,参数个数,类型不同就是方法的重载。

常用语法

将字符串转成字节型数组,

char [] chr=m.tocharArray(); //m是字符串

大小写转换

大写转小写;(返回值时转换后的结果)

String a=mm.toUpperCase();

小写转大写;(返回值时转换后的结果)

String a=mm.toLowerCase();

JoptionPane语句

输入
a=JOptionPane.showInputDialog();
输出
JOptionPane.showMessageDialog();

获取随机数

小数
mm=(int)Math.random();//必须强转
整数
Random r=new Random();
mm=r.nexInt();

字符串转成int

Integer.parseInt(data); //data是变量

输入

先调用Scanner类;

import java.util.scanner;

在声明内存空间,(实例化)

Scanner scan=new Scanner(System.in);

最后使用;

scan.nextInt() //int类型的输入

输出

System.out.println();

8,平方计算;

math.pow(参数1,参数2); //参数2是次方,参数1是数;

很赞哦! (0)

文章评论