大一学期 学习Java编程心得分享

java的介绍:

Java 是一种广泛使用的编程语言,具有众多显著的特点和优势:

Java 是一种面向对象的编程语言,它强调将数据和对数据的操作封装在对象中,这使得代码更具模块化和可维护性。

它具有“一次编写,随处运行”的特性。这意味着只要 Java 程序在一个平台上被编译成字节码,就可以在几乎任何支持 Java 运行时环境的设备或操作系统上运行,大大提高了程序的可移植性。

Java 拥有丰富的类库,涵盖了从网络编程、图形用户界面(GUI)开发到数据库操作等众多领域。这为开发者提供了极大的便利,减少了重复开发的工作量。

在安全性方面,Java 有着严格的安全机制,包括字节码验证、运行时安全检查等,这使得 Java 程序在运行时更加可靠和安全。

例如,在企业级应用开发中,许多大型系统如银行的交易处理系统、电商平台的后台管理系统等都是使用 Java 构建的。因为它能够处理高并发、大数据量的业务场景,并且具有良好的稳定性和可扩展性。

在移动开发领域,Android 应用的开发主要使用 Java 语言,众多流行的手机应用都是基于 Java 技术实现的。

总之,Java 以其强大的功能、良好的可移植性和安全性,在软件开发的各个领域都发挥着重要的作用,是编程领域中不可或缺的一门语言。

对象

面向对象(OOP)就是Java语言的基础,也是Java语言的重要特性。面向对象的概念:生活中的一切事物都可以被称之为对象,生活中随处可见的事物就是一个对象,我们可以将这些事物的状态特征(属性)以及行为特征(方法)提取并出来,并以固定的形式表示。

实用性

Java语言是由C和C++演变而来的,它省略了C语言中所有的难以理解、容易混淆的特性(比如指针),变得更加严谨、简洁、易使用。

安全性

Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击,从而可以提高系统的安全性。

多样性

在C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持。多线程机制使应用程序在同一时间并行执行多项任务,该机制使得程序能够具有更好的交互性、实时性。

分布式

Java语言具有强大的、易于使用的网络能力,非常适合开发分布式计算的程序。java中提供了网络应用编程接口(java.net),使得我们可以通过URL、Socket等远程访问对象

2.Java语法基础


标识符
用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。

合法的标识符
由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且首字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对大小写敏感。


关键字


Java语言中已经赋予了特定含义的

保留字


const、goto,Java版本中尚未使用,但以后版本可能会作为关键字使用

变量


程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。

变量的使用
变量的声明:数据类型 变量名;
变量的赋值:变量名 = 数据;
变量的操作:放入打印语句进行输出或者进行运算

Java 中的注释


单行注释
多行注释
文档注释

 二、提升代码质量的技巧

1.使用有意义的命名:为类名、变量名、方法名等使用描述性的名称,使代码易于阅读和理解。

// 不推荐:
int a;
 
// 推荐:
int studentAge;

2.遵循编码规范:遵循统一的编码规范,例如Java编码规范 (Java Code Conventions)。 

遵循编码规范可以提高代码的可读性和可维护性。以下是一些遵循Java编码规范的示例

(1)类名应使用驼峰命名规则,并以大写字母开头。

public class EmployeeRecord {
    // 类的成员和方法
}

(2)方法名和变量名应使用驼峰命名规则,首字母小写。

public void calculateSalary() {
    // 方法的实现
}
 
int numberOfStudents;

 (3)常量名应使用全部大写字母,并用下划线分隔单词。

public static final int MAX_STUDENT_COUNT = 50;

 (4)使用缩进(一般为4个空格)来表示代码块的层次结构。

for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        System.out.println("偶数: " + i);
    } else {
        System.out.println("奇数: " + i);
    }
}

(5)使用花括号来明确代码块的开始和结束,并确保代码的风格一致。 

if (condition1) {
    // 逻辑1
} else if (condition2) {
    // 逻辑2
} else {
    // 默认逻辑
}

 (6)在二元操作符之间使用空格,使代码更易读。

int sum = num1 + num2;
int product = num1 * num2;

3.注释清晰明了:使用注释解释代码的功能、目的和实现方式,方便他人理解和维护代码

示例:

// 计算并返回两个数的和
public int add(int num1, int num2) {
    return num1 + num2;
}

4.编写简短而功能单一的方法:确保方法只有一个明确的功能,提高方法的可读性和可维护性。

编写简短而功能单一的方法可以将代码逻辑拆分为更小的部分,提高代码的清晰度和可维护性。以下是一个示例:

public class Calculator {
    public int add(int num1, int num2) {
        return num1 + num2;
    }
    
    public int subtract(int num1, int num2) {
        return num1 - num2;
    }
    
    public int multiply(int num1, int num2) {
        return num1 * num2;
    }
    
    public int divide(int num1, int num2) {
        if (num2 == 0) {
            throw new IllegalArgumentException("除数不能为零");
        }
        return num1 / num2;
    }
}

 

在上面的示例中,每个方法都只完成一个特定的数学运算,例如add方法用于执行加法操作,multiply方法用于执行乘法操作等。每个方法的功能明确,易于理解和维护。

如果将所有的运算逻辑都放在一个方法中,代码可能会变得冗长且难以阅读。通过将其拆分为多个简短的方法,可以使代码结构更清晰,同时也可以更方便地测试和重用这些独立的功能。

 5.避免使用魔法数值:将常量或魔法数值定义为易于理解的变量,提高代码的可读性和可维护性。

 示例:

// 不推荐:
if (score > 60 && score < 90) {
    // do something
}
 
// 推荐:
int passingScore = 60;
int excellentScore = 90;
if (score > passingScore && score < excellentScore) {
    // do something
}

6.处理异常并提供有意义的错误信息:避免捕获异常后忽略或无操作的情况,提供清晰明了的错误信息以便快速定位问题。

示例:

try {
    // 可能抛出异常的代码
} catch (Exception e) {
    logger.error("处理数据时出现错误:" + e.getMessage());
}

 三、基础案例分享

1.数值拆分

需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台

 

 

2.求三个整数的最大值


需求:定义三个整数,找出最大值并打印在控制台

分析

1.用三元运算符获取前两个整数的最大值, 并用临时变量保存起来

num1 > num2 ? num1 : num2;
2.用三元运算符,让临时最大值和第三个整数进行比较,并记录结果

temp > num3 ? temp : num3;
3.输出结果

3.键盘录入

需求:请完成Java程序与用户交互,比如录入用户输入的名称、年龄。

 

4.求和

需求:求1-5之间的数据和,并把求和结果在控制台输出

分析:

1.定义for循环使其能够依次访问到1、2、3、4、5.

2.在循环外定义一个整数变量sum用来累加这些数据

3.循环结束后,输出求和变量即是结果

5.元素搜索---学生信息系统的数据搜索
需求:后台程序需存储学生信息并展示,然后要提供按学号搜索学生信息的功能

分析:

1.定义Student类,定义ArrayList集合存储学生对象信息,并遍历出来

2.提供一个方法,可以接收ArrayList集合,和要搜索的学号,返回搜索到的学生信息,并展示

3.使用死循环,让用户可以不停的搜索

public class Student {
    private String studyNumber;
    private String name;
    private int age;
    private String className;
 
    public Student() {
    }
 
    public Student(String studyNumber, String name, int age, String className) {
        this.studyNumber = studyNumber;
        this.name = name;
        this.age = age;
        this.className = className;
    }
 
    public String getStudyNumber() {
        return studyNumber;
    }
 
    public void setStudyNumber(String studyNumber) {
        this.studyNumber = studyNumber;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public String getClassName() {
        return className;
    }
 
    public void setClassName(String className) {
        this.className = className;
    }
}
public class Test {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("20180302", "叶孤城", 23, "护理一班"));
        students.add(new Student("20180303", "东方不败", 23, "推拿二班"));
        students.add(new Student("20180304", "西门吹雪", 26, "中药学四班"));
        students.add(new Student("20180305", "梅超风", 26, "神经科二班"));
        System.out.println("学号\t名称\t年龄\t班级");
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());
        }
        //按照学号搜索功能
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入学号查询学生对象");
            String studentNumber = sc.next();
            Student s = getStudentById(students, studentNumber);
            if (s != null) {
                System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());
            } else {
                System.out.println("查无此人");
            }
        }
    }
 
    /**
     * 根据学生的学号查询学生对象赶回
     *
     * @param students    存储全部学生对象的集合
     * @param studyNumber 搜索的学生的学号
     * @return 学生对象|null
     */
    public static Student getStudentById(ArrayList<Student> students, String studyNumber) {
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            if (s.getStudyNumber().equals(studyNumber)) {
                return s;
            }
        }
        return null;
    }
}

 以下介绍本人学期章节测试

示例:

一维数组

 二维数组

 

编写mymath类

 类的继承

 

以上就为我在于本学期的java学习心得,及所学技巧展示,文章分享到这里就结束了!感谢!

青山不改,绿水长流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值