我的基础笔记

本文全面介绍了Java编程的基础知识,包括开发环境搭建、基本数据类型、运算符、流程控制、数组及方法等内容,适合初学者入门。

 1. java 开发环境
 JVN: java虚拟机, 加载.class并运行.class
 JRE :java运行环境,JRE=JVM+java系统类库
JDK :java 开发工具包。JDK =JRE+编译,运行等工具
    
2.

1)变量
     声明E.g:   int a;
     赋值:int a =10;
    变量在使用之前必须初始化
 2)八种基本数据类型
   byte:字节型,用于存储整数的,占用1个字节,范围-128到127之间.
   short:短整型,用于存储整数的,占用2个字节,范围-32768到32767之间.
   int:整型,用于存储整数的,占用4个字节,范围-2^31到2^31-1之间.
   long:长整型,用于存储整数,占用8个字节,范围-2^63到2^63-1之间.
   float:单精度浮点数,占用4个字节,不能表示精确的值.
   double:双精度浮点数,用于存储小数的,占用8个字节,不能表示精确的值.
   boolean:布尔型,用于存储true和flase的,占用1个字节
   char:  字符型,采用unicode字符编码形式,用于存储单个字符,占用2个字节,范围0到65535之间.
3)类型间的转换
  基本数据类型从小到大:
    byte-short-int-long-float-double
    char--
  *自动类型转化/隐式类型转化
  *强制类型转换-------大类型到小类型

  
3. 运算符
1) %---取余(5%2)//1
     /----除(5%2)//2 
    +-----加
     *-----乘--(a*=2)//a*2
    ++/--:
    a++的值为a****************a--的值为a
    ++a的值为的值为a+1**********--a的值为a-1
2)关系运算符
    成立true,不成立flase -------><,>=,<=,==,!=
3)逻辑运算符
  &&(并且)---------------俩边真则为真,见flase则flase
  | |(或者)-----------------有真则真,见true则true
  !( 非 )----------------取反,非真则假,非假则真
   逻辑运算符是建立在关系运算符基础之上的,逻辑运算符结果也是boolean类型;
4)赋值运算符
  简单赋值---- =,  扩展赋值---------a+=10//a=a+10等
5) 条件三目运算符
  boolean?数 1数 2------boolean判断,真数1.假数2

4.分支结构
         if(boolean){ 有条件执行的语句}else if(){ }
   执行过程---------判断boolean,true结束,flase继续执行
        swich...case
   优点:效 率高,结构清晰   缺点:只能对整数判断相等
      break:跳出打断
     default:所有case都未匹配时才执行
     continue:跳过循环体中剩余语句而进入下一次循环
 

5.循环结构
  **1)for(①;②;③){
    ④
}
( )中的“;”不可以缺失
    ①:初值,初始值:必须为0(不对,但很多场景适用)
    ②:条件:限制循环是否继续执行。(条件一般都是比较运算)
    ③:步长,增量:是将循环变量从初值变化到条件限制的标准。
    ④:循环内容
执行循序: ① - ② - ④ - ③
continue:跳过循环体剩余语句而进入下一次循环
break:跳出循环
嵌套循环:外循环走一次,内循环走所有次
 
 **2)while---先循环再做
while(①){
    ②
}
 ①:条件
    ②:循环内容
执行顺序:  判断① - 成立继续②
          -  不成立 退出
较准确的写法:

while(②){
    ④
    ③
}
  
  **//3)do-while----先做再循环
do{
    ②
}while(①);
执行顺序:② - 判断① - 成立继续②
        -  不成立 退出
    
do-while  和   while  区别:do-while 至少比 while 多执行一次

 6.数组
 ***引用数据类型,相同数据类型元素的集合
 1)  定义---  int[ ] arr =new int[ 10];
 2)初始化(初始化的是数组中元素)
    int [ ] arr =new int [ 3 ];//------0,0,0
    int [ ] arr ={1,2,3 };//-------1,2,3
    int [ ] arr =new int[  ]{1,2,3 }//----1,2,3
    arr =new int [ ]{2,5,8 }//-----2,5,8
  3)通过数组.lenght获取数组的长度
  4)通过下标索引来访问数组中的元素,数组的下标从0开始,最大到数组的长度减1

7.方法
1)访问权限从低到高 private,默认的(default),protected,public
2)向上造型:超类型引用指向派生类的对象,能造型成为数据类型:超类+所实现的接口
3)***重写:一定发生在俩个类中,并且是父子关系,方法名相同,参数列表不同
 ---------方法被调用时,看对象的类型,遵循俩同俩小一大原则
  +++++***方法名相同,参数列表相同
               ****派生类方法的返回值类型小于等于超类方法,派生类抛出的的异常小于或等于超类方法
     ******派生类方法的访问权限大于或等于超类方法
     4)重载
*** 方法名相同,参数列表不同(参数个数不同,参数类型不同)
 5)构造方法(constructor):构造器 构建器
     作用:给实例变量赋初始值
     若自己不写则默认有一个无参构造,若自己写了则不再默认提供
     构造方法也属于类中成员,可以用4种访问修饰符来修饰
6)抽象方法
    由abstract修饰,只有方法的定义,没有具体实现,连{ }都没有
****抽象类:包含抽象发法的类必须是抽象类,抽象类不能被实列化(new 对象),抽象类是需要被继承的派生类
****封装共有的属性和行为----代码复用
*******为所有的类提供共有的属性和行为----向上造型
7)静态方法
*1由static修饰,属于类,存储在方法区中,只有一份,通过类名点访问没有隐式this,访问不了实际变量
*2 static final
    必须声明初始化,常量名所有字母都大写,多个单词用-分离

8  类
    类是由class来定义的,类和接口和抽象类的访问权限只能是public或默认的,类中成员的访问权限4种都可以,包含抽象方法的类必须是抽象类,派生类必须重写所有抽象方法
   1)成员内部类
   内部类只服务于外部类,对外不具有可见性,可以直接访问外部类成员,包括私有的
  2)匿名内部类
  若想创建一个派生类的对象,并且对象只被创建一次,可以创建匿名内部类
   在匿名内部类中,默认外面的变量为final
 

 9 接口
  **是一种引用数据类型,由interface定义,访问权限是公开的
  **接口不能被实列化
  **接口需要被实现 /继承的,实现类/派生类必须重写抽象方法
  **重写接口中的抽象方法,访问权限必须是piblic
  ** 一个类型可以实现多个接口,用逗号分离,若有继承又实现时,应先继承后实现(imlements)
 

10  多态
 1)对象的多态
 **同一类型的引用指向不同对象时,有不同的实现------所有抽象方法都是多态的
 2)行为的多态
 ***同一对象被造型时不同的类型时,有不同的功能-----所有对象都是多态的
  3)方法的动态
 重写和重载
 

11 内存管理
 1)堆:new出来的对象,也包括实列变量----存储
 2)栈:存储局部变量,包括方法的参数
 3)方法区:存储 .class字节码文件(包括静态变量,所有方法),方法就一份,通过this来区分具体的访问方法

12 String
  字符串类型,字符串一但创建对象内容永远无法改变,但字符串可以重新赋值---不变对象
1)常量池:字符串常量池(堆中)
 

13 String方法
      **length()-----声明字符串型变量并赋值,获取字符串的长度并输出
     ***indexOf()/lastIndexOf()------声明字符串型变量并赋值,检索当前字符串中给定字符串的位置并输出,检索给定字符串在当前字符串中最后一次出现的位置并输出
     ***substring()------声明字符串型变量并赋值为一个网址,截取域中的名字并输出,截取整个域名并输出
     *** trim()-----声明字符串型变量并赋值,去除当前字符串两边的空白字符
   ****charAt()----声明字符串型变量并赋值,返回当前字符串指定位置上的字符并输出
 *** startsWith()/endsWith()-------声明字符串型变量并赋值,判断当前字符串是否是以给定的字符串开始的/结束的
  ******toUpperCase()/toLowerCase()-----声明字符串型变量并赋值,将当前字符串中的英文部分转为全大写/全小写
 ******valueOf()-----声明一个整型变量和一个浮点型变量,将其数据类型转换为String并输出

14 StringBuilder

SrtringBuilder:非线程安全,并发处理的,性能稍快-----是Jdk1.5 后推出的一个类

StringBuffer:是线程安全,同步处理的,性能稍慢-----是jdk1.0与String一起推出的类

StringBuilder:
   append()追加、replace()替换、delete()删除、insert()插入、reverse()反转
 

15派生类重写equals()的基本规则

1)俩个对象必须同一个类型,若类型不同返回false

2),若参数对象为null,返回false

3)原则上俩个对象要比较对象属性是否相同
16正则表达式
matches() -----使用给定的正则表达式验证当前字符串的格式是否符合要求
 split()-------将当前字符串按照满足正则表达式部分进行拆分,并将拆分的部分以String【】返回
  replaceAll------将当前字符串满足正则表达式部分替换为给定的字符串

17Object
          鼻祖,所有类间接或直接继承Object,为了多多态
  toString()-----类的全称@地址,没有参考意义,长重写toString()返回具体数据
  equals()-------比较地址,没有参考意义,长重写equals()来比较具体的属性值

18包装类 -------可以将字符串转换为对应的基本数据类型(前提该字符表达正确基本类型值)
  int ----Interger
 char----Character
其余6种类型首字母大写

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liamlf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值