我的Java笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Java笔记相关的知识,希望对你有一定的参考价值。


第一章


一 计算机程序:一系列有序的指令集合。

二 java语言分为三个领域

javaSE java技术核心(桌面应用程序)qq 百度云

javaEE 企业版(面向internet的应用程序)京东 淘宝

java ME (移动设备 小型嵌入开发)手机上的软件


三 java 程序 三步走

1 编写程序{程序以.java结尾}

2 编译程序(使用javac指令编译程序,编译后程序以.class结尾)

3 运行{使用java指令运行编译后的文件}

使用myeclipse开发java程序步骤


四 1 创建项目

2 编写源程序

3 编译

4 运行


public class 类名 {

}

六 内层框架

public statice void main {String[]args){

}

注意方法名必须是main 主方法四要素 public static void String[] args

输出指令 System.out.println ("男");System.out.println ("16");注意首字母要大写

println和print区别 println 输出后换行 print 只输出

/n和/t 区别 /n 换行 /t 制表位(四个字符为一个制表位)


七 注释

// 单行注释 以//开始到行末结束

/**
*
*
*/ 多行注释

/
*
*
*
/ 多行注释 多用于注释代码块

 

第二章 变量 存存储数据的基本单元


变量的声明和赋值 数据类型 变量名=数值 int price=10 声明 赋值 分 两步 int price price=-10

数据类型 基本数据类型 byte 取值范围(-2的七次方到2的七次方减-1)

short 取值范围(-2的十五次方到2的次十五方减-1)

int 取值范围(-2的三十一次方到2的次三十一方减-1)

long 取值范围(-2的6十三次方到2的次六十三方减-1)

float 浮点型 99f

double 双精度 double price=32.5

boolean

char

引用数据类型 string class 接口

 

当是多个单词组成的变量名 以 驼峰形命名法


当是多个单词组成的变量名 以 驼峰形命名法


变量命名规范 首字母 以字母 下划线 $开头


赋值运算符 是把右边的值赋予左边

算术运算符 + - * / %(取余 )

num++;//num=num+1;num+=1


num-;//num=num-1;num-=1


System.out.println(--num);//先计算在输出


System.out.println(num--);//先输出 在计算

 

 

double avg=(99+88)/3 发生自动转换 转换条件 两种类型兼容 如 int double 都是数值型


强制转换 (数据类型)变量名 )(数据类型)值

 

double num=5.5 int result=(int)num; int result=(int)5.5


第三章


保存真假 用 boolean 变量 有两个值: true 真 与 false 假

Scanner inut=new Scanner (Systenm.in); int age=input.next() //接收int类型


String name=input.next(); //接受String类型


关系运算符 > < >= <= == !=


赋值 = == 表示比较


条件判断: if(表达式 ) {语句} 当表达式为真输出

 

运算符 分为 单目: ! ++ --


双目: = + - * / % | || & &&


三目: ? : 例子 int sign=90? 1:0 ;


逻辑运算符 优先级顺序: () ! 算术运算符 比较运算符 && || 赋值运算符= 注 多使用小括号控制优先级


if(表达式) 为真 {执行语句A}


否则 else{执行B语句}


多分支: if-else if-else
if(条件1){语句1}

if(条件2){语句2}

if(条件3){语句3}

else{语句4}


switch(表达式)

{case 值1;

语句1;

break;

case 值2;

语句2;

break;

default:

语句3;

break;

}

多重if结构和switch 结构 使用场合 多重区间值 用if 等值判断 用switch


break作用跳出switch结构;

while循环 语法:while(循环条件) {循环操作}


equals 字符串比较 == 数字比较

 

do while

do{


循环操作;


} while(循环条件);


特点 先执行 后判断


调试方法 1.设置断点 2.单步运行 3.观察变量


调试步骤:


1 猜测错位置,设置断点


2启动调试,单步运行


3观察变量


4发现问题


5修正代码,重新运行


6 解决问题


for 语法 (参数初始化;判断条件;参数叠加){循环操作} 特点: 先判断后执行 顺序: 1 2 4 3

break 改变程序控制流 多用于循环中 跳出整个循环

 

continue 只能用在循环中 跳过循环体剩下语句去执行下一次循环


while do-while for 三者区别


while (判断条件) {循环操作} 先判断后先执行


do-while do{循环操作} while(条件) 先执行一次后判断


for(参数初始化;判断条件;参数叠加) {循环操作} 特点: 先判断后执行


循环次数已定用 for 不知道循环次数用while


第四章


数组 是一个变量 存储相同变量类型的一组数据


优点 减少代码量 易于查找

使用步骤

1 声明数组 int[]a 2 分配空间 a=new int[5] 3 赋值 a[0]=100 4 处理数据a[0]=a[0]+20;|


值传递 不同变量分配不同的储存空间 改变一个变量不会影响另一个变量


引用传递 把引用原对象赋予另一个引用对象 两个引用指向同一存储空间

 

二维数组 语法 数据类型 [][] 数组名 数据类型 数组名 [][]


分配内存 数据类型 [][]数组名=new 数据类型 [一维数组长度][二维数组最大长度] 例 int [][]num=new int [5][30]


二维数组实际是一个一维数据,他的元素也是;


赋值方式 socres={{1,2,3},{2,3,4},{7,8,9}}

 

第六章

 

对象的特征 -----类的属性 每个对象都有特定的属性值

 


封装 对象同时具有属性和方法 两项特性 通常被封装在一起 共同体现事物 不能分割


类和对象 类是抽象的概念 是一个模子 确定了对象的实行和方法


对象 是现实世界中的实体看得见摸的着 具有静态和动态特性

 

定义类的步骤


1 定义类名


2 编写类的属性


3 编写类的方法


定义类的属性 访问修饰符 属性类型 属性名称=默认值


定义类的方法 访问修饰符 返回值类型 方法名称() {方法体}

 

成员变量 上级是类 作用域整个类中


局部变量 上级是方法 作用在本方法


类名 对象名 = new 类名() 创建对象


使用对象 对象名.属性=值 ; 例 being.schoolName="云图智联";


对象名.方法;


面向对象优点


1.便与程序模拟实现世界中的实体


2.隐藏细节 对象的属性和方法已被封装,通过方法来调用它,无需在意其内在的变化


3.可重用 通过类的模版,可以创建多个类的对象

 

 

类是引用数据类型 传值 m2=m1 传的是地址

 


类的方法 public 返回值类型 方法名() {方法主体}


方法名规范

1 必须以字母 - $ 开头


2 可以有 数字 但不能以数字开头


3 方法有多个单词主城 开头首之母小写 其后首字母大写


4 方法名都采用动词

 


方法返回值: 有返回值必须告诉返回值类型 void 无返回值类型



包名命名规范 公司网站倒过来写 加项目名称 再加类所属的文件

 

带参的方法


访问修饰符 返回值类型 方法名称 (参数列表) {方法体}

public string getFuirt(String fuirt)

String zhi= Fuirt "汁"

return zhi;


调用带参方法


同类中 直接 调用 方法名 (实参列表)

不同类 对象.方法名(参数列表)

 

带方法的参数:


形参数据类型与实参数据类型一致


形参调用数量与实参调用数量也需一致

 

字符串


声明字符串方法


String s="您好"; String s=new String("您好")


确定 字符串长度 用 length();


equals 比较的是值 用于字符串比较 == 比较的是地址 用于数字比较


equals lgnore Case 忽略大小写


toLowerCase 转换成小写


toUpperCase 转换成大写


\转运符


String s="您好" str=str+"北京"


使用 + 与 concat 方法 会浪费内存 性能较差 线程安全


idexOf(int ch) 获取字符或字符下标 str .idexOf(‘你‘) indexOf(String s) 例 str .indexOf(.java)


lastidexOf(int ch) 例如 str .lastidexOf(‘你‘) lastindexOf(String s) 例 str .lastindexOf(.java)

 

subString(int beginIdenx,int endIndex) 下标从0开始 包括beginIdenx, 不包括 endIndex


trim() 去掉前后空格

 

split() 方法分割 字符串 返回数组

String Buffer类 频繁拼接字符串时使用


String Buffer m=new String Buffe("你")

m.append("好吗?")

m.insert(1,"们")

String str=m.toString();

System.out.println(str);//你们好吗?

特点: 不会产生副本 节省内存 性能高 线程安全 在自身基础上追加字符串

 

 


操作数据较少 使用 String

 


操作数据较多使用 StringBuffer ;StringBuilder


操作数据较多 并且是多线程使用 StringBuffer


操作数据较多 并且是 单线程使用 StringBuilder


性能 String < StringBuffer < StringBuilder


抽象类的步骤


1 定义类


2 定义属性


3 定义方法

 

抽象原则


1 根据面向对象思想抽取


类图优点: 直观 易于理解


构造方法 系统默认的无参构造 public Dog() { }


当程序写了自定义的构造方法时,系统默认的无参构造会消失


自定义无参和有残构造


public aDog() { this.name="小白"}


public aDog(String name){ this.name="小白"}


特点 :访问修饰符 public 无返回值 构造方法名与类名一致


public Dog(String name) { this.name=name;}


this 当前对象的引用

 

static 静态的意思 修饰属性,方法,代码块


被修饰的属性,方法 的调用方式 : 类名.属性 类名.方法 代码块 类加载时 加载的是代码块


final 最终的 修饰属性 它是个常量,并且不可修改 常量名全为大写


方法里的变量不能被static 修饰


封装三步骤 1 属性私有化 通过 private

2 创建 getter/setter方法

3 在getter/setter方法中加入控制语句

this使用: this.属性 this.方法 this.构造 this() 调用无参构造 this(参数[]) 调用有参构造

开发中一个完整的实体类 包括 私有化属性 get和set方法 无参构造与有参构造

子类不能继承父类的那些成员


1.private 成员

2.不在同包中使用默认访问权限

3. 构造方法

访问修饰符使用范围

private 本类 friendly 本类 同包 protected 本类 同包 子类 public 本类 同包 子类 其他

多重继承关系顺序: 父类属性 构造方法 —— 子类属性 构造方法

super 只能访问子类的方法和构造方法

访问构造方法时只能放在第一句

 


不能访问父类private 成员




























































































































































































































以上是关于我的Java笔记的主要内容,如果未能解决你的问题,请参考以下文章

我的博客笔记汇总版

我的Java笔记

我的Java学习笔记 -开发环境搭建

JAVA入门笔记·我的第一个JAVA程序

我的Java学习笔记-语法

我的Java知识复习回顾笔记