2020-09-08课堂笔记

主知识点

1.java程序基本结构

在这里插入图片描述
注:
1.package行可以有0个或者多个,一般在程序的最前面
2.import行可以有0个或者多个,一般在包之后,类名之前
3.主程序入口参数String[] args 与String args[]具有同等效应,推荐使用前者,方便理解

2.驼峰命名法

一般用于定义变量,类名、属性、命名空间等,除第一个单词小写外,其余单词首字母大写
如myFirstProject

3.数据类型

包括基本数据类型8种和引用数据类型
下表列出了8种基本数据类型和对应的默认值

类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
boolean false
char ‘u0000’

4.变量

1.局部变量
2.全局变量
3.参数变量
注:局部变量包含参数变量,但二者具有细微差别
参数变量无需定义,局部变量需要先定义

5.数据类型转换(自动转换和强制转换)

在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。
可以从存储范围大的转换到存储范围小的;
byte<-short<-int<-long<-float<-double
格式:type b=(type)a (type代表类型,参考上表基本数据类型)
注:可能造成精度丢失!!需谨慎!

6.字符串注意事项

1.字符串拼接将其他字符自动转换成字符串类型
如下列代码块,运行结果是Hello JavaEE51
而不是Hello JavaEE6

public class test
{
    
    
  public static void main(String[] args)
  {
    
    
    System.out.println("Hello JavaEE"+5+1);
  }
}

只有当格式为下列代码块时,才能打印出6

public class test
{
    
    
     public static void main(String[] args)
       {
    
    
         Ststem.out.println("Hello JavaEE"+(5+1));
       }
}

字符串拼接时需要注意,所有都会变成string类型,如有需求,应添加小括号,来保证程序的正确性

7.集合(list)与数组

1.list集合的创建与追加、删除

List<String> list=new ArraryList<String>();
list.add("hello java");
list.remove(XXX);//xxx可以填充索引,也可以填充Object o(内容)

2.一维数组的两种创建

int array[]=new arrary[length];
String array[]={
    
    "X","XX","XXX","XXXX"};

8.分支结构

分支结构包括if单路分支,if-else、if-else-if、switch-case、三目运算

9.循环结构

循环结构包括while、do-while、for、for-each
注:
1.do-while循环的循环体至少执行一次
2.for-each比for性能更高
如下利用for-each循环遍历list集合

for(String i:list)
{
    
    
   system.out.println(i);
}

10.主动抛异常

Java的异常捕获机制允许用户自定义异常,也允许用户主动抛异常
以下表格列出常见9种异常及其含义

异常 含义
ClassCastException 类型转换异常
ClassNotFoundException 类未找到异常
ArithmeticException 算数异常
ArrayStoreException 数组中包含不兼容的值异常
ArrayIndexOutOfBoundsException 数组下标越界异常
SQLException 操作数据库异常类
NullPointerExxeption 空指针异常
NumberFormatException 字符串转数字抛出异常
FileNotFoundException 文件未找到异常

11.主函数main(args)回调方法

常用于菜单,重进主函数

12.continue与break

continue:结束本次循环,进入下一次循环
break:结束循环

项目案例(2个)

1.打印实心、空心等腰三角形(且美观)
在这里插入图片描述
代码逻辑:双层循环,先打所有空格,然后在打*
1.实心

for(int i=0;i<n;i++)
{
    
    
    for(int j=4;j>i;j--)
    {
    
    
        System.out.print(" ");//打印空格
    }
    for(int j=0;j<i*2+i;j++)
    {
    
    
        System.out.print("*");
    }
    System.out.println("\n");
}

2.空心

public class Test {
    
    
	public static void main(String[] args)  {
    
    
		//控制行数
		for(int i=0;i<5;i++)
		{
    
    
			//控制每行的空格数 
			//总行数-当前行数=每行的空格数
			for(int j=4;j>i;j--)
			{
    
    
				System.out.print(" ");
			}
			
			// 打印每行星星数
			for(int j=0;j<i*2+1;j++)
			{
    
    
				
				//判断是否打到最后一行
				//1.全部要打 2.美观
				if(i==4)
				{
    
    
					//奇数打印星星 偶数不打印星星
					if(j%2==1)
					{
    
    
						System.out.print(" ");
						continue;
					}
				System.out.print("*");
				continue;
				}
				//空心 每行的第一个星星与最后一个星星打印,其余打空格
				if(j==0){
    
    
				System.out.print("*");
				continue;
				}
				//最后一个
				if(j==i*2)
				{
    
    
					System.out.print("*");
					continue;
				}
				//其余的都打空格
				System.out.print(" ");
			}
			//换行
			System.out.println();
		}
	}

2.找出所有xx以内能被7整除的数(高性能,满足要求的代码)

public class test4 {
    
    
     public static void main(String args[]) throws IOException
     {
    
    
    	 int n=0;
    	 System.out.println("请输入一个整数:");
    	 Scanner s=new Scanner(System.in);
    	 String ss=s.nextLine();
    	 for (int i = 0; i < ss.length(); i++) {
    
    
    		 if (! (ss.charAt(i) >= '0' && ss.charAt(i) <= '9')) {
    
    
    			 System.out.println("请输入合理的整数");
    			 //break;
    			 main(args);
    		 }
    		 
    			 
    		 
 			}
    	
    	 n=Integer.parseInt(ss);
			//  System.out.println(n);
			  s(n);
    		
    	 
    	 
    	 
     }
     public static void s(int n) throws IOException
     {
    
    
    	 int count=0;
    	 int sum=0;
    	 int[] m =new int[100];    	
    	 for(int i=1;i<n;i++)
    	 {
    
    
    		 if(i%7==0)
    		 {
    
    
    			 count++;
    			// System.out.println(i);
    			m[count-1]=i;
    		 }
    	 }
    	 System.out.println("符合条件的总个数为:"+count+"分别是:");
    	 for(int i=0;i<count;i++)
    	 {
    
    
    		 System.out.println(m[i]);
    		 sum+=m[i];
    	 }
    	 double sum2=sum;
    	 System.out.println("他们的总和为:"+sum);
    	 System.out.println("他们的平均数为:"+sum2/count);
    	 System.out.println("其中最小值为:"+m[0]);
    	 System.out.println("其中最大值为:"+m[count-1]);
    	

猜你喜欢

转载自blog.csdn.net/sxh06/article/details/108473078