JAVA基础知识(黑马java笔记)

jdk

在这里插入图片描述

基础知识

注释

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

在这里插入图片描述

关键字

Java赋予特殊含义的单词

字面量

数据在代码中的书写格式
在这里插入图片描述

标识符

给类,变量,方法取名字的一些符号
1.给变量命名
小驼峰命名法
2.给class命名
大驼峰命名法

数据类型

1.引用数据类型
2.基本数据类型
	整数
			byte,short,int ,long
	浮点数
			float,double
	字符
			char
	布尔
			boolean

scanner

Java核心类库里面封装的java源码用于输出

import java.util.Scanner;  //导入包
  
public class Scannertext {  
public static void main(String[] args) {  
Scanner sc=new Scanner(System.in);  //创建对象
System.out.println("请输入你的姓名");  
String name=sc.next();  //使用
System.out.println("请输入你的年龄");  
int age=sc.nextInt();  
System.out.println("请输入你的身高");  
double height=sc.nextDouble();  
System.out.println("请输入你的性别");  
String gender=sc.next();  
System.out.println("请输入你的婚姻状态");  
boolean status=sc.nextBoolean();  
}  
}

运算

运算符

1.基本运算符
	+ - x 
	/ ---整数相除只能得到整数
	% ---取余,判断奇数偶数
2.自增自减运算符
	++ --,注意放在变量前面或者后面
3.赋值运算符
	扩展的赋值运算符,自带强转效果、

在这里插入图片描述

4.关系运算符
	运算之后的结果为boolean类型

在这里插入图片描述

5.逻辑运算符

在这里插入图片描述

在这里插入图片描述

6.三元运算符
	int c= a>b ? a :b
7.运算符优先级

在这里插入图片描述

字符串拼接

当+遇到字符串的时候,+不是运算符,成为字符串拼接符

隐式转换

在这里插入图片描述

强制转换

在这里插入图片描述

进制

进制的分类

在这里插入图片描述

进制的转换

在这里插入图片描述

原码反码补码
计算机中的运算 --数字的二进制补码进行运算

在这里插入图片描述

方法(函数)

1.有返回值的函数
2.没有返回值的函数

在这里插入图片描述
在这里插入图片描述

3.方法重载

在这里插入图片描述

数组

package Day01;
//import java.util.
public class ArrayPractice {
    public static void main(String[] args) {
        //数组的静态初始化--指定数组元素

        int arr1[]=new int []{0,1,2};
        int[] arr2={3,4,5};

      
        //数组的动态初始化--只指定数组长度
        int []arr=new int[3];

    }
}

package Day01;

public class Array2 {
    public static void main(String[] args) {
        /*二维数组*/
        //1.静态初始化
        int [][]arr1=new int[][]{{1,2,3},{4,5,6}};
        int [][]arr2={{1,2,3},{4,5,6}};

        //2.动态初始化
        int [][]arr=new int[2][3];

        arr[0]=new int []{11,22,33};
        arr[1]=new int []{44,55,66};

        for(int i=0;i<2;i++)
        {
            for(int j=0;j<3;j++)
            {
                System.out.println(arr[i][j]);
            }
        }
    }
}

类和对象基础

设计对象

基础
1.java中创建对象必须要有类得存在
2.类
	一组属性与行为得集合,看作对象的设计图
3.对象
	根据类(设计图),创建出来的实体
4.类与对象的关系
	4.1 依赖关系:根据类创建对象
	4.2 数量关系:根据一个类可以创建多个对象
类的组成
类的本质:
	就是对事物进行的描述
1.属性--名词的描述(姓名,年龄)
	使用成员变量表示,位置处于类中方法外
2.行为--动词的描述(吃饭,看电视)
	使用成员方法表示,去掉static关键字
package com.mycode.opp;  
  
public class Student {  
//属性:设计图  
String name;  
int age;  
  
//行为  
public void study()  
{  
System.out.println("学生学习");  
}  
public void eat()  
{  
System.out.println("学生吃饭");  
}  
  
}

使用对象

在这里插入图片描述

* 创建student类的对象进行使用  
	* 1.创建对象的格式  
	* 类名 对象名 = new 类名();  
	* 2.使用对象成员变量的格式  
	* 对象名.成员变量  
	* 3.使用对象成员方法的格式  
	* 对象名.成员方法()  
* 细节:  
	* 打印对象名,看到对象成员的地址  
	* com.mycode.opp.Student@3b07d329  
	* 成员变量就算没有赋值,也可以直接用,使用的是对象的默认值  
package com.mycode.opp;  
  
//测试类含有主方法  
public class StudentTest {  

public static void main(String[] args) {  
Student stu1=new Student();  
System.out.println(stu1);  
  
System.out.println(stu1.age);  
System.out.println(stu1.name);  
  
stu1.eat();  
stu1.study();  
System.out.println("----------");  
  
Student stu2=new Student();  
System.out.println(stu2);  
  
System.out.println(stu2.age);  
System.out.println(stu2.name);  
  
stu2.eat();  
stu2.study();  
}  
}

成员变量与局部变量的区别

在这里插入图片描述

this关键字

在这里插入图片描述

在这里插入图片描述

构造方法

  • 构造方法(构造器):
    • 创建对象的时候,要执行的方法
  • 格式:
    • 1.方法名与类名相同
    • 2.没有返回值类型,连void也没有
    • 3.没有具体返回值(不能使用return语句)
  • 构造方法执行时机:
    • 创建对象的时候执行
    • 每创建一次对象,就会执行一次
  • 作用:
    • 本质作用-创建对象
    • 在创建对象的时候可以对对象中的数据进行初始化
      在这里插入图片描述
package com.mycode.constructor;  
  
public class Student {  
//属性  
String name;  
int age;  
//构造方法  
public Student(String name,int age)  
{  
this.name=name;  
this.age=age;  
System.out.println("我是Student类构造方法");  
}  
  
}
package com.mycode.constructor;  
  
public class StudentTest {  

public static void main(String[] args) {  
//去掉前面的,Student()调用构造方法  
Student s1=new Student("Alice",17);  
System.out.println(s1.name+s1.age);  
  
}  
  
}

封装

权限修饰符
private:
	同一个类中访问
(default):同一个类中,同一个包中(默认)
protected:
	同一个类中。同一个包中,不同包的字类
public
	任意位置访问
设计规范
合理隐藏,合理暴露
package com.mycode.fengzhuang;  
/*  
* 给私有成员变量
* 通过公共的行为方法来赋值及返回值操作  
* */  
public class Student {  
private int age;  
  
public void setAge(int age)  
{  
this.age=age;  
}  
  
public int getAge()  
{  
return age;  
}  
}

javaBean—实体类

1.该类中只写成员变量
2.写空参和带有实参的两个构造函数
3.给对应的成员变量写setXXX与getxxx函数---有快捷键

只负责数据存取
对数据的处理交给其他类来完成

在这里插入图片描述

package com.mycode.fengzhuang;  
/*  
* 给私有成员变量赋值及返回值操作  
* */  
public class Student {  
private int age;  
private String name;  
  
  
public Student() {  
}  
  
public Student(int age, String name) {  
this.age = age;  
this.name = name;  
}  
  
/**  
* 获取  
* @return age  
*/  
public int getAge() {  
return age;  
}  
  
/**  
* 设置  
* @param age  
*/  
public void setAge(int age) {  
this.age = age;  
}  
  
/**  
* 获取  
* @return name  
*/  
public String getName() {  
return name;  
}  
  
/**  
* 设置  
* @param name  
*/  
public void setName(String name) {  
this.name = name;  
}  
  
  
}

字符串

API(application programming interface)

应用程序接口
即别人写好的一些类,自我调用就可以

jdk API 帮助文档
先查找到类
看包
若在java.lang中,则直接使用
若不在,要用导包代码导入包
看类的构造方法
创建该类
看类的成员方法

字符串

  • Scanner键盘录入:
    • String next(): 遇到空格或者tab键就不在录入
    • String nextline():以回车作为录入结束标识
  • string 类的特点:
    • 1.java中所有双引号的字符串,都是String类的对象
    • 2.字符串在创建后其内容不可改变
    • 3.字符串虽然不可改变,但是可以被共享(字符串常量池)
      *string 类的构建:
    • 1.直接双引号构建
    • 2.通过构建方法构建
      *string 类的构造方法:
    • public String():直接构造空白字符串
    • public String(char[] chs):根据传入的字符数组来创建字符对象
    • public String(Strting original):根据传入的字符串创建字符串对象
  • 问题:
    • 打印对象名,应该输出地址
    • 这里打印字符串对象名,未得到地址
package com.mycode2.scanner;  
  
import java.util.Scanner;  
  
public class ScannerDemo {  

public static void main(String[] args) {  
// Scanner s1=new Scanner(System.in);  
// System.out.println("输入一个数字");  
// int num=s1.nextInt();  
// System.out.println("输入字符串");  
//  
// String name=s1.nextLine();  
// System.out.println(name);  
  
String a=new String();  
System.out.println(a);  
  
char []chs={'1','2','3'};  
String b=new String(chs);  
System.out.println(b);  
  
String c="adff";  
System.out.println(c);  
String d=new String(c);  
System.out.println(d);  
  
}  
}

在这里插入图片描述

字符串常用方法在这里插入图片描述
package com.mycode2.StringWays;  
  
public class MyStringWay {  
public static void main(String[] args) {  
String s1="swwe";  
String s2="srwe";  
String s4="sWWe";  
String s3=new String(s1);  
System.out.println(s1==s2);  
System.out.println(s1==s3);  
  
  
/*比较函数:*/  
System.out.println(s1.equals(s2));  
System.out.println(s1.equals(s4));  
System.out.println(s1.equalsIgnoreCase(s4));  
  
/*字符串遍历函数*/  
char []s=s1.toCharArray();//转换为字符数组  
for (int i = 0; i < s.length; i++) {  
System.out.println(s[i]);  
}  
System.out.println(s1.charAt(0));//根据索引找字符  
System.out.println(s1.length());  
/*切割*/  
System.out.println(s1.substring(2));  
System.out.println(s2.substring(1, 2));  
System.out.println(s1.replace(s1, s4));  
/*  
* we  
r  
sWWe  
* */  
String[]ww= s1.split("ww");  
for (int i = 0; i < ww.length; i++) {  
System.out.println(ww[i]);  
}  
  
}  
}

StringBuilder

stringbuilder作用:

  • 提高字符串的操作效率
package com.mycode2.stringBuilder;  

public class StringBuilderDemo {  
public static void main(String[] args) {  
// method(); 3014ms  
// long start=System.currentTimeMillis();  
// StringBuilder sb=new StringBuilder();  
// for (int i = 0; i <100000 ; i++) {  
// sb.append(i);  
// }  
// System.out.println(sb);  
// long end=System.currentTimeMillis();  
// System.out.println(end-start); 16ms  
}  
public static void method()  
{  
  
long start=System.currentTimeMillis();  
String s="";  
for(int i=0;i<100000;i++)  
{  
s+=i;  
}  
long end=System.currentTimeMillis();  
System.out.println(end-start);  
}  
  
}
  • String Builder介绍:
    • 1.一个可变的字符序列
    • 2.是字符缓冲区,可以理解为容器,可以存放任意类型的数据,但是只要进入这个容器,全变成字符串
  • StringBuilder的构造方法:
    • StringBuilder sb=new StringBuilder();//空参构造
    • StringBuilder sb2=new StringBuilder(“123”);//带参构造
  • Stringbuilder常用方法:
    • sb.append(123);
    • sb.reverse()
    • sb.length()
    • sb.toString()
package com.mycode2.stringBuilder;  
  
public class StringBuilderDemo2 {  

public static void main(String[] args) {  
StringBuilder sb=new StringBuilder();//空参构造(不够时会自动扩容)  
StringBuilder sb2=new StringBuilder("123");//带参构造  
System.out.println(sb2);  
  
System.out.println("______");  
//常用方法  
sb.append(123);  
sb.append("sffg");  
sb.append(23.44);  
System.out.println(sb);  
  
System.out.println(sb.reverse());  
System.out.println(sb.length());  
//调用的方法StringBuilder没有,但是String有,转换成String  
char[] s2=sb.toString().toCharArray();  
for (int i = 0; i < s2.length; i++) {  
System.out.println(s2[i]);  
}  
}  
}

集合

  • 集合介绍:
    • 可变数组,当数组大小不够时,自动扩容为原大小1.5倍的
    • 可能会造成内存的浪费
  • 集合的使用:
    • 1.构造方法:
    • public ArrsyList():创建一个空的集合容器
    • 2.创建细节:
    • 可以添加任意类型数据,数据不够严谨—添加<>指定数据类型
    • <>:泛型
    • 1.使用泛型可以对集合中储存的数据进行类型的限制
    • 2.泛型中不限制基本数据类型----解决方案:使用基本数据类型所对应的包装类
    • int—Interger
    • char–Character
    • short–Short
  • 集合的常用方法:
    • 1.增加:
    • list.add(e)—将指定元素添加到列表的末尾
    • list.add(index,e)----将指定元素添加到指定位置
    • 2.删除
    • list.remove(index)----根据索引删除,返回删除的元素
    • list.remove(item)----根据内容删除,返回是否删除成功
    • 3.修改
    • list.set(index,item)—根据索引修改,返回被修改之前的元素
    • 4.查询–返回值一般会接收
    • list.get(index)
    • list.size()
package com.mycode2.arraylist;  
  
import java.util.ArrayList;  
  
public class ArrayListDemo {  

public static void main(String[] args) {  
addMthod();  
removeMethod();  
setMetuod();  
getMrthod();  
}  
public static void addMthod()  
{  
ArrayList<String> list=new ArrayList<>();  
list.add("ssdff");  
list.add("sddff");  
list.add(1,"dee");  
System.out.println("添加后"+list);  
}  
public static void removeMethod()  
{  
  
ArrayList<String> list=new ArrayList<>();  
list.add("ssdff");  
list.add("sddff");  
list.add(1,"dee");  
// String re= list.remove(1);  
list.remove("dee");  
System.out.println("删除后" +list);  
// System.out.println("删除的是"+re);  
}  
public static void setMetuod()  
{  
ArrayList<String> list=new ArrayList<>();  
list.add("ssdff");  
list.add("sddff");  
list.add(1,"dee");  
list.set(1,"张三");  
System.out.println("修改后为"+list);  
}  
public static void getMrthod()  
{  
ArrayList<String> list=new ArrayList<>();  
list.add("ssdff");  
list.add("sddff");  
list.add(1,"dee");  
System.out.println("查询"+list.get(1));  
System.out.println("长度"+list.size());  
}  
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值