「我的编程笔记」——记录学习中的代码、函数、概念等

文章目录

每日一句正能量

不管昨天、今天、明天,能豁然开朗就是最美好的一天。

前言

常用代码、特定函数、复杂概念、特定功能......在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧!

编程如同探索一条未知的道路,需要不断地积累、总结和分享经验,才能更加深刻地理解和掌握其中的技巧和知识点。因此,分享一下自己在编程学习过程中记录的笔记,让我们一起分享、学习、进步,共同探索编程技巧与知识点。

例如,平时在逛博客的时候会遇到项目开发中的常用代码、特定函数、复杂概念、特定功能等,我都会收藏起来,比如登录、正则表达式、常用存储等。之前在《翻开收藏夹,拾起行动的力量》这篇博客里面也提到过一些,还没看过可以移步过去看看。

常用的代码

登录

在Java中,实现一个简单的登录功能通常需要以下代码:

java 复制代码
import java.util.Scanner;

public class Login {
    public static void main(String[] args) {
        String username = "admin";
        String password = "123456";
        Scanner scanner = new Scanner(System.in);
        boolean loginSuccess = false;
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入用户名:");
            String inputUsername = scanner.nextLine();
            System.out.print("请输入密码:");
            String inputPassword = scanner.nextLine();
            if (inputUsername.equals(username) && inputPassword.equals(password)) {
                System.out.println("登录成功!");
                loginSuccess = true;
                break;
            } else {
                System.out.println("用户名或密码错误,请重新输入!");
            }
        }
        if (!loginSuccess) {
            System.out.println("登录失败!");
        }
    }
}

以上代码实现了一个简单的登录功能,其中包括了以下内容:

  1. 导入Scanner类,用于读取用户输入;
  2. 定义一个用户名和密码,这里使用了硬编码,实际应用中应该从数据库或配置文件中读取;
  3. 使用for循环进行三次尝试登录,如果三次登录失败则提示登录失败;
  4. 使用equals方法比较输入的用户名和密码和预先设定的用户名和密码是否一致;
  5. 如果一致则输出登录成功并跳出循环,否则输出用户名或密码错误并重新循环。

需要注意的是,在实际应用中,我们需要考虑更多的安全性问题,例如密码的加密存储、防止暴力破解等。

存储

在Android开发中,常用的存储方式有Shared Preferences、SQLite数据库、文件存储等。这里简单介绍一下常用的存储方式的相关代码。

  1. Shared Preferences

Shared Preferences是Android平台提供的一种轻量级的存储方式,主要用于存储一些简单的配置信息。

java 复制代码
// 写入数据到Shared Preferences
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();
editor.putString("name", "John");
editor.putInt("age", 25);
editor.apply();

// 从Shared Preferences中读取数据
SharedPreferences prefs = getSharedPreferences("data", MODE_PRIVATE);
String name = prefs.getString("name", "");
int age = prefs.getInt("age", 0);

以上代码中,我们首先通过getSharedPreferences方法获取到SharedPreferences对象,然后通过SharedPreferences.Editor对象写入数据,最后通过apply()方法提交数据。读取数据的过程也非常简单,通过SharedPreferences对象直接获取数据即可。

  1. SQLite 数据库

SQLite是Android平台内置的一种关系型数据库,使用SQL语言来进行操作。

java 复制代码
// 创建数据库和表
SQLiteDatabase db = openOrCreateDatabase("mydb.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");

// 插入数据
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 25);
db.insert("person", null, values);

// 查询数据
Cursor cursor = db.query("person", null, null, null, null, null, null);
while (cursor.moveToNext()) {
    int id = cursor.getInt(cursor.getColumnIndex("_id"));
    String name = cursor.getString(cursor.getColumnIndex("name"));
    int age = cursor.getInt(cursor.getColumnIndex("age"));
    Log.d("MyTag", "id: " + id + ", name: " + name + ", age: " + age);
}
cursor.close();

// 删除表
db.execSQL("DROP TABLE IF EXISTS person");

// 关闭数据库
db.close();

以上代码中,我们首先通过openOrCreateDatabase方法创建一个名为mydb.db的数据库,并创建了一个名为person的表。插入数据时使用了ContentValues来存储数据,查询数据时通过Cursor对象进行遍历,最后通过execSQL方法删除表并关闭数据库。

  1. 文件存储

在Android开发中,还可以使用文件存储的方式来存储数据。下面是一个简单的示例代码:

java 复制代码
// 写入数据到文件
try {
    FileOutputStream fos = openFileOutput("data.txt", MODE_PRIVATE);
    fos.write("Hello World!".getBytes());
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

// 从文件中读取数据
try {
    FileInputStream fis = openFileInput("data.txt");
    BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
    String line = reader.readLine();
    fis.close();
} catch (IOException e) {
    e.printStackTrace();
}

以上代码中,我们首先通过openFileOutput方法创建一个名为data.txt的文件,并向其中写入了一行字符串。读取数据时,我们通过openFileInput方法打开文件,然后使用BufferedReader对象逐行读取数据。

需要注意的是,以上示例代码仅仅是Android存储方式的入门示例,实际应用中还需要考虑更多的安全性和性能问题,例如文件的加密、数据库的版本控制等。

特定函数

MD5加密

在Java中,使用java.security.MessageDigest类可以实现MD5算法的计算。下面是一个MD5计算的特定函数示例:

java 复制代码
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
    public static String md5(String str) {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            md5.update(str.getBytes());
            byte[] bytes = md5.digest();
            StringBuilder sb = new StringBuilder();
            for (byte b : bytes) {
                String hex = Integer.toHexString(b & 0xFF);
                if (hex.length() == 1) {
                    sb.append("0");
                }
                sb.append(hex);
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}

以上代码中,我们定义了一个静态函数md5来计算MD5值。函数中,我们首先通过MessageDigest类的getInstance方法获取MD5对象,然后使用update方法更新数据,通过digest方法计算MD5值。最后,我们将计算出的MD5值转换成十六进制字符串返回。

需要注意的是,MD5算法虽然可以防止数据被篡改,但是存在一定的破解风险,因此在实际应用中需要考虑更加安全的加密方式,例如SHA-256等算法。

复杂概念

Java语言是一门比较大而且细致的语言,涉及到的复杂概念也比较多。以下是Java中一些比较复杂的概念:

1. 多线程

多线程是指在一个进程中运行多个线程,它可以提高程序的并发处理能力,增加CPU的利用率。Java通过Thread类和Runnable接口来实现多线程编程。

2. 集合类

Java中提供了很多集合类,比如List、Set、Map等,这些集合类可以让我们方便地处理数据。集合类的实现原理比较复杂,因为它需要考虑到数据的增删改查、排序、去重等问题。

3. 异常处理

Java中异常处理是一种重要的错误处理机制。Java中的异常是指程序执行过程中发生的错误,可以通过try-catch语句来捕获并处理异常。

4 泛型

泛型是Java中非常重要的概念,它可以使代码更加灵活和安全。Java中的泛型可以应用于类、接口和方法,它可以让代码在编译时就能够检查类型安全性。

5 反射

反射是Java中非常重要的机制,它可以让我们在运行时动态地获取类的信息,并且可以操作类的属性和方法。反射机制是Java框架和开发工具的实现基础。

以上是Java中的一些比较复杂的概念,掌握这些概念需要花费一定的时间和精力,但是掌握了这些内容,可以使我们更加熟练地使用Java编程,并提高程序的质量和效率。

特定功能

Java 和 Android 中常用的特定功能包括:

1. 文件操作

Java 和 Android 中都提供了文件操作的API,可以进行文件的读写、创建、删除等操作,如Java中的File类和Android中的FileInputStream、FileOutputStream等类。

2. 网络通信

Java 和 Android 都支持网络通信,可以使用TCP、UDP、HTTP等协议进行数据通信,如Java中的Socket类和Android中的HttpURLConnection类。

3. 图形绘制

Android 中可以使用Canvas类进行图形绘制,可以绘制基本的图形对象、文本、图片等,还可以进行图形变换和动画效果。

4. 数据库操作

Java 和 Android 中都提供了数据库操作的API,可以进行数据库的创建、增删改查等操作,如Java中的JDBC和Android中的SQLiteOpenHelper类。

5. 多媒体处理

Android 中可以使用MediaPlayer类进行音频播放、使用Camera类进行摄像头操作等多媒体处理功能。

以上是 Java 和 Android 中常用的一些特定功能,掌握这些功能可以使程序的实现更加方便、高效、具有更好的用户体验。

后记

在开发中我收集的东西比较多,比如常用的开发工具类,功能,自定义View,网络请求工具类等,然后制作成第三方的依赖库,可以直接使用。没看过的可以去看看。

我们可以看到很多开发者努力学习、积累,并在实践中不断完善自己的技能。学习编程是一个漫长、充满挑战的过程,需要耐心、毅力和不断的实践。同时也需要及时记录和整理所学,这有助于加深对知识的理解,提高代码的质量和效率,并方便日后回顾和查找。希望大家不断地学习、成长、创造,并用编程为世界带来积极的变化和贡献。

转载自 :https://blog.csdn.net/u014727709/article/details/132420216

欢迎start,欢迎评论,欢迎指正

相关推荐
wusong9991 小时前
mongoDB回顾笔记(一)
数据库·笔记·mongodb
猫爪笔记1 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
Resurgence032 小时前
【计组笔记】习题
笔记
pq113_62 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio
爱米的前端小笔记3 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
不爱说话郭德纲5 小时前
聚焦 Go 语言框架,探索创新实践过程
go·编程语言
寒笙LED5 小时前
C++详细笔记(六)string库
开发语言·c++·笔记
岳不谢6 小时前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为
红色的山茶花8 小时前
YOLOv8-ultralytics-8.2.103部分代码阅读笔记-block.py
笔记·深度学习·yolo
坚硬果壳_8 小时前
《硬件架构的艺术》笔记(六):流水线的艺术
笔记·硬件架构