【学习笔记】JAVA基础知识

文章目录

  • 前言
  • 一、Java语言基础
    • 关于命令符号
    • 良好的编译习惯
    • java编程基础框架
    • 数据类型
    • 注释
    • 相关快捷键
  • 二、方法
    • 重写和重载的区别
    • 输出方法
  • 三、数组和字符串
    • 增强for循环
    • 判断内容相同
    • 命令行参数输入
    • 地址传递
    • 字符串
    • 留下问题:数组填充内容


前言

本文内容是基于学习过C语言和C++基础知识进行编辑的。
所用的编译软件时是eclipse

一、Java语言基础

首先,带大家辨析一些概念:
.exe是源程序文件,可以运行

关于命令符号

java表示运行, javac表示编译
在这里插入图片描述

在上图,红色部分时命令符号,白色部分则是java源文件。
这两个命令符号都在bin目录下。

良好的编译习惯

1.类名首字母大写。
2.方法名采用驼峰法命名,可以简洁明了的知道方法的用途。

java编程基础框架

代码如下(示例):

package Chapter1;//声明程序所在包
import java.util.Scanner;//引入输入库
import javax.swing.JOptionPane;//引入
import java.util.*;//这种方法可以引用java的所有库

public class Example{
	final  int AEF = 1;//符号常量(final + 正常定义(名字全大写)),一旦赋值不可重新赋值。
	//常量不仅可以定义在函数外,也可定义在函数内。
	public static void main(String[] args) {
		//z
		//从键盘输入赋值
		Scanner inte = new Scanner(System.in);
		int a = inte.nextInt();//从键盘输入一个int型数据
		long b = inte.nextLong();//从键盘输入一个long型数据
		//输出
		System.out.println(a);
		System.out.println(b);//输出,并换行
		System.out.print(a);//仅输出
		System.out.print(b);
		
		//三种循环
		for(int i =0;i < 1;i++)
		{
			System.out.println("FOR循环");
		}
		
		do {
			System.out.println("do-while循环");
		}while(false);
		
		while(a > 0) {
			a--;
			System.out.println("while循环");
		}
		//对话框	涉及JOptionPane类
		int i ,j ,max;
		String s1,s2;
		JOptionPane.showMessageDialog(null ,"这是一个对话框");//对话框展示
	    s1 = JOptionPane.showInputDialog(null, "输入第一个整数");
	    s2 = JOptionPane.showInputDialog(null, "输入第二个整数");
	    i = Integer.parseInt(s1);
	    j = Integer.parseInt(s2);
		max = i > j ? i : j;
		JOptionPane.showMessageDialog(null ,i + "和" +j +"的最大值为" + max);		
	}
}

在这里插入图片描述

以下是对话框的结果:

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

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

PS:javax是区别于java的拓展包,所以需要另外引入。
在这里插入图片描述

数据类型

类型字节数
char2
short2
int4
long8
float4
double8

ASCII码:数字<大写<小写
65~90 A~Z (大写字母+32)

注释

//或者/* */或者/*****/,前两种比较常用

相关快捷键

main+Alt+/ 主函数
(主函数是程序的入口,要想运行,主函数必须为静态。)
Syso+Alt+/ 输出(一般都是Printin)

最后,是思维导图(可以根据思维导图检索知识的缺失):

在这里插入图片描述

二、方法

思维导图:

在这里插入图片描述

代码如下(示例):

package Chapter1;

public class Example1 {
	
	public static void main(String[] args) {
		
		Example1 c = new Example1();
	int a = 5;
	//方法调用
	int b = FanFa(a);
	
		System.out.println(b);//赋值调用
		System.out.println(FanFa(a));//直接打印调用
		System.out.println(c.FanFa(b));//对象调用
}
	public static  int FanFa(int i)
	{
		return i;
	}
	
	
}

重写和重载的区别

重载 :一个类中定义多个同名的方法。
重写:重写发生在继承中多个类。
其中方法名、参数、修饰符一致。
提示:方法的重载和方法的返回值类型无关(返回值不同,不能构成重载。)

输出方法

对于输出,java保留了在c语言中包括%d的方法,又添加了“aaa”+“ssss”的方法。


三、数组和字符串

思维导图:

在这里插入图片描述

代码:

package Chapter1;
import java.util.Arrays;//引入Arrays类
import java.util.List;
//引入
public class Example2 {
	public static void main(String[] args) {
//数组的定义
		Object[] arr = new Object[3];
		int[] arr1 = new int[3];
		int[] arr2 = {1,2,3,5,6,1};
		int[] arr3 = new int[]{1,2,3};//常用前两种
		int[][] arr4 =  {{1,3,2,5},{4,5,6,5}};
		int[] arr5 = {7,5,6};
		int a = 123;
//增强for循环foreach遍历
		for(int[] i :arr4)
		{
			for(int j : i)
			{
				System.out.print(j+",");
			}
		}
		System.out.println("");
		//数组元素拷贝,将arr5[3]拷到arr2[6]
		System.arraycopy(arr5, 1, arr2, 0, arr5.length-1);
		System.out.println(Arrays.toString(arr2));
		//判断数组内容相等
		System.out.println(Arrays.equals(arr3,arr5));//arr3 = {1,2,3},arr5 = {7,5,6}.
		//数组填充内容
		Arrays.fill(arr,"A");
		System.out.println(Arrays.toString(arr));
		//将数组转为list(该方法使用了泛型等后面学到了泛型可再次深入学习)
		List<int[]>inte1 = Arrays.asList(arr2);//Q:出现问题,留下乱码
		List<Integer>inte2 = Arrays.asList(a);
		System.out.println(inte1+" "+inte2);
		//数组排序
		Arrays.sort(arr5);
		System.out.println(Arrays.toString(arr5));
//地址传递
		//按值传递
		//按指针传递
		//按引用传递
//字符串		
		//字符串的创建和应用
		System.out.println("到字符串了");
		String  a1 = "abc";//直接定义
		char a2[] = {'a','b','c','d','c'};
		String s1 = new String(a2);
		String s2 = new String(a2,1,2);
		System.out.println(s1+" "+s2);//char型数组变成String
		System.out.println(s1.length());//获取s1的长度
		System.out.println(s1.indexOf("b"));//返回s1中b第一出现的下标
		System.out.println(s1.lastIndexOf("c"));//c最后一次出现的下标
		System.out.println(s1.charAt(3));//根据索引获取字符 注意:起始位置为0
		//toString函数
		Pig m = new Pig();
		System.out.println(m.toString());//输出对象s1中的所有属性,每次使用都需要重写	
	}
}


增强for循环

在这里插入图片描述

判断内容相同

根据上述代码,得出的结果是false

命令行参数输入

应用步骤:

step1:打开run下的Run confiqurations…
在这里插入图片描述
step2:在Arguments窗口设置args[]的值
在这里插入图片描述
step3:用for循环遍历进行验证

代码如下:

 package com.sxt;

public class Welcome {
	
	public static void main(String args[ ] )
	{
		for(int i=0;i<args.length;i++)
		System.out.println(args[i]);
	}

}

地址传递

首先,了解以下这些定义:
:基本类型局部变量
:引用类型的值
一般来说,数组的地址放在栈中,值放在堆中。
形参:传递给方法/函数的值,有确定的值。
实参:用于接受函数/方法调用前设有确定的值。
参数有三种传递方式:
按值传递按指针传递按引用传递
按值传递的方法所传递的值为基本类型,形参改变,实参不变。
按引用传递的方法所传递的参数类型为引用类型。形参改变,实参也随之改变。
后面将介绍引用类型及基本类型数据,其中数据类型为类引用的对象也属于引用类型,实参发生改变。
基本类型有以下几种:
整数类型: long、int、short、byte
浮点类型: float、double
字符类型: char
布尔类型: boolean
引用类型有以下几种:
类Class、 接口类型Inteface、 数组类型Array、 枚举类型Enum、 注解类型、 字符串型

字符串

  1. 字符串的创建

直接声明:

在这里插入图片描述

使用char数组间接创建:

在这里插入图片描述

以下是错误示例:

在这里插入图片描述
我们发现这种创建方法可以完成char转换成String的步骤。于是拓展一个字符串和字符之间转换的方法。

  1. toString()函数
    直接输出对象重点中的所属内容

代码:

在这里插入图片描述

结果:

在这里插入图片描述
如果需要符合想要内容,需要在对象类中重写toString()函数。

  1. StringBuffer类的引入
    StringBuffer 为字符串缓冲区(在原有基础上改变字符串内容而不增加地址)
    初始容量为16个字符
    String为字符串常量,StringBuffer为字符串变量。String对象一旦创建就不可更改,StringBuffer可以直接更改。所以在新建对象时,String需要将旧对象回收,再去建造新对象。
    StringBuffer直接更改就可以了。

适用情况String适用于少量字符串操作
StringBuffer适用于多线程,大量字符串

留下问题:数组填充内容

在这里插入图片描述

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值