每日一句正能量
不管昨天、今天、明天,能豁然开朗就是最美好的一天。
前言
常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧!
编程如同探索一条未知的道路,需要不断地积累、总结和分享经验,才能更加深刻地理解和掌握其中的技巧和知识点。因此,分享一下自己在编程学习过程中记录的笔记,让我们一起分享、学习、进步,共同探索编程技巧与知识点。
例如,平时在逛博客的时候会遇到项目开发中的常用代码、特定函数、复杂概念、特定功能等,我都会收藏起来,比如登录、正则表达式、常用存储等。之前在《翻开收藏夹,拾起行动的力量》这篇博客里面也提到过一些,还没看过可以移步过去看看。
- 《翻开收藏夹,拾起行动的力量》
常用的代码
登录
在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("登录失败!");
}
}
}
以上代码实现了一个简单的登录功能,其中包括了以下内容:
- 导入Scanner类,用于读取用户输入;
- 定义一个用户名和密码,这里使用了硬编码,实际应用中应该从数据库或配置文件中读取;
- 使用for循环进行三次尝试登录,如果三次登录失败则提示登录失败;
- 使用equals方法比较输入的用户名和密码和预先设定的用户名和密码是否一致;
- 如果一致则输出登录成功并跳出循环,否则输出用户名或密码错误并重新循环。
需要注意的是,在实际应用中,我们需要考虑更多的安全性问题,例如密码的加密存储、防止暴力破解等。
存储
在Android开发中,常用的存储方式有Shared Preferences、SQLite数据库、文件存储等。这里简单介绍一下常用的存储方式的相关代码。
- Shared Preferences
Shared Preferences是Android平台提供的一种轻量级的存储方式,主要用于存储一些简单的配置信息。
// 写入数据到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对象直接获取数据即可。
- SQLite 数据库
SQLite是Android平台内置的一种关系型数据库,使用SQL语言来进行操作。
// 创建数据库和表
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方法删除表并关闭数据库。
- 文件存储
在Android开发中,还可以使用文件存储的方式来存储数据。下面是一个简单的示例代码:
// 写入数据到文件
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计算的特定函数示例:
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,网络请求工具类等,然后制作成第三方的依赖库,可以直接使用。没看过的可以去看看。
- 史上最全的常用开发工具类收集(持续更新中)
- Android高仿qq及微信底部菜单的几种实现方式
- 自定义View入门
- 一步一步教你将开源项目上传到jcenter(第一种方式)
- 一步一步教你将开源项目上传到jcenter(第二种方式)
- JitPack让第三方依赖更简单(第一种方法)
- JitPack让第三方依赖更简单(第二种方法)
我们可以看到很多开发者努力学习、积累,并在实践中不断完善自己的技能。学习编程是一个漫长、充满挑战的过程,需要耐心、毅力和不断的实践。同时也需要及时记录和整理所学,这有助于加深对知识的理解,提高代码的质量和效率,并方便日后回顾和查找。希望大家不断地学习、成长、创造,并用编程为世界带来积极的变化和贡献。文章来源:https://www.toymoban.com/news/detail-671981.html
转载自 :https://blog.csdn.net/u014727709/article/details/132420216
欢迎start,欢迎评论,欢迎指正文章来源地址https://www.toymoban.com/news/detail-671981.html
到了这里,关于「我的编程笔记」——记录学习中的代码、函数、概念等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!