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

文章目录

  • 每日一句正能量
  • 前言
  • 常用的代码
    • 登录
    • 存储
  • 特定函数
    • MD5加密
  • 复杂概念
    • 1. 多线程
    • 2. 集合类
    • 3. 异常处理
    • 4 泛型
    • 5 反射
  • 特定功能
    • 1. 文件操作
    • 2. 网络通信
    • 3. 图形绘制
    • 4. 数据库操作
    • 5. 多媒体处理
  • 后记

在这里插入图片描述

每日一句正能量

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

前言

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

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

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

  • 《翻开收藏夹,拾起行动的力量》

常用的代码

登录

在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平台提供的一种轻量级的存储方式,主要用于存储一些简单的配置信息。

// 写入数据到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语言来进行操作。

// 创建数据库和表
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开发中,还可以使用文件存储的方式来存储数据。下面是一个简单的示例代码:

// 写入数据到文件
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://blog.csdn.net/u014727709/article/details/132420216
欢迎start,欢迎评论,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/84545.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络实现天气图像分类 - P3

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;Pytorch实战 | 第P3周&#xff1a;彩色图片识别&#xff1a;天气识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff…

C++的对象与类的含义

C是一门面向对象的编程语言&#xff0c;理解C需要掌握类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;这两个概念。 C 中的类&#xff08;Class&#xff09;可以看做C语言中结构体&#xff08;Struct&#xff09;的升级版。结构体是一种构造类型&#x…

【后端速成 Vue】第一个 Vue 程序

1、为什么要学习 Vue&#xff1f; 为什么使用 Vue? 回想之前&#xff0c;前后端交互的时候&#xff0c;前端收到后端响应的数据&#xff0c;接着将数据渲染到页面上&#xff0c;之前使用的是 JavaScript 或者 基于 JavaScript 的 Jquery&#xff0c;但是这两个用起来还是不太…

回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览…

Alibaba-Easyexcel 使用总结

简介 简介 EasyExcel 是一个基于 Java 的简单、省内存的读写 Excel 的开源项目&#xff0c;在尽可能节约内存的情况下支持读写百 M 的 Excel。 但注意&#xff0c;其不支持&#xff1a; 单个文件的并发写入、读取读取图片宏 常见问题 Excel 术语 Sheet&#xff0c;工作薄…

C# WPF ListBox 动态显示图片

前言 最近在和其他软件联合做一个本地图片选择传输功能&#xff0c;为此希望图片能够有序的呈现在客户端&#xff0c;简单的实现了一下功能&#xff0c;通过Mvvm模式进行呈现&#xff0c;过程简单通俗&#xff0c;话不多说直接上图。 处理过程 前台代码 你只需要粘贴到你的前台…

SQL - 开窗(窗口)函数

什么是开窗函数&#xff1f; 开窗函数对一组值进行操作&#xff0c;它不像普通聚合函数那样需要使用GROUP BY子句对数据进行分组&#xff0c;能够在同一行中同时返回基础行的列和聚合列 开窗函数的语法形式为&#xff1a;函数 over(partition by <分组用列> order by …

数据结构与算法:计算机科学的基石

文章目录 数据结构&#xff1a;构建数据的框架算法&#xff1a;问题的解决方案编程语言&#xff1a;实现数据结构的工具结论 &#x1f389;欢迎来到数据结构学习专栏~数据结构与算法&#xff1a;计算机科学的基石 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&…

Linux的基础指令

目录 1、ls指令 .和..意义 2、pwd指令 3、cd指令 ①cd ~ ②cd - 关于cd ..的用法 绝对路径和相对路径 4、touch指令 5、mkdir指令 tree指令 6、rmdir指令 7、rm指令 * 8、man指令 9、cp指令 nano&#xff1a; 10、mv指令 11、cat指令 12、more指令 13、less…

PCL 三维点云边界提取(C++详细过程版)

边界提取 一、概述二、代码实现三、结果展示本文由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 点云边界提取在PCL里有现成的调用函数,具体算法原理和实现代码见:PCL 点云边界提取。为充分了解pcl::BoundaryEsti…

最新ai系统ChatGPT程序源码+详细搭建教程+mj以图生图+Dall-E2绘画+支持GPT4+AI绘画+H5端+Prompt知识库

目录 一、前言 二、系统演示 三、功能模块 3.1 GPT模型提问 3.2 应用工作台 3.3 Midjourney专业绘画 3.4 mind思维导图 四、源码系统 4.1 前台演示站点 4.2 SparkAi源码下载 4.3 SparkAi系统文档 五、详细搭建教程 5.1 基础env环境配置 5.2 env.env文件配置 六、环境…

欧拉计划45题

Triangular, pentagonal, and hexagonal Triangle, pentagonal, and hexagonal numbers are generated by the following formulae: Triangle 1,3,6,10,15,… Pentagonal 1,5,12,22,35,… Hexagonal 1,6,15,28,45,… It can be verified…

性能比较 - Spring Boot 应用程序中的线程池与虚拟线程 (Project Loom)

本文比较了 Spring Boot 应用程序中的不同请求处理方法&#xff1a;ThreadPool、WebFlux、协程和虚拟线程 (Project Loom)。 在本文中&#xff0c;我们将简要描述并粗略比较可在 Spring Boot 应用程序中使用的各种请求处理方法的性能。 高效的请求处理在开发高性能后端…

镜像底层原理详解和基于Docker file创建镜像

目录 一、镜像底层原理 1.联合文件系统(UnionFS) 2.镜像加载原理 3.为什么Docker里的centos的大小才200M? 二、Dockerfile 1.简介 2.Dockerfile操作常用命令 &#xff08;1&#xff09;FORM 镜像 &#xff08;2&#xff09;MAINTAINER 维护人信息 &#xff08;3&…

电商系统架构设计系列(九):如何规划和设计分库分表?

上篇文章中&#xff0c;我给你留了一个思考题&#xff1a;分库分表该如何设计&#xff1f; 今天这篇文章&#xff0c;我们来聊一下如何规划和设计分库分表&#xff0c;以及要考虑哪些问题。 引言 当要解决海量数据的问题&#xff0c;就必须要用到分布式的存储集群了&#xff…

2023.8 - java - 泛型

泛型问题的引出&#xff1a; jdk 1.5 引出泛型 // package 泛型; public class index {public static void main (String[] args){test t new test();t.setContent("aaa");int a (int) t.getContent();System.out.println(a);} }class test{Object content;publi…

RNN+LSTM正弦sin信号预测 完整代码数据视频教程

视频讲解:RNN+LSTM正弦sin信号预测_哔哩哔哩_bilibili 效果演示: 数据展示: 完整代码: import torch import torch.nn as nn import torch.optim as optim import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.preprocessing import…

1.jvm和java体系结构

jvm简介 JVM&#xff1a;跨语言的平台 Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了&#xff0c;它更是一个平台、一种文化、一个社区。 ● 作为一个平台&#xff0c;Java虚拟机扮演着举足轻重的…

无涯教程-Perl - use函数

描述 此函数将MODULE导出的所有功能(或仅LIST引用的功能)导入当前包的名称空间。有效等效于- BEGIN { require "Module.pm"; Module->import(); }也用于在当前脚本上强加编译器指令(编译指示),尽管从本质上讲它们只是模块。 请注意,use语句在编译时进行判断。在…

SpringBoot 模板模式实现优惠券逻辑

一、计算逻辑的类结构图 在这张图里&#xff0c;顶层接口 RuleTemplate 定义了 calculate 方法&#xff0c;抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现&#xff0c;同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具…