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

文章目录

  • 每日一句正能量
  • 前言
  • 常用的代码
    • 登录
    • 存储
  • 特定函数
    • 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,欢迎评论,欢迎指正

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5.8.webrtc事件处理基础知识

在之前的课程中呢&#xff0c;我向你介绍了大量web rtc线程相关内容&#xff0c;今天呢&#xff0c;我们来看一下线程事件处理的基本知识。首先&#xff0c;我们要清楚啊&#xff0c;不同的平台处理事件的API是不一样的&#xff0c;这就如同我们当时创建线程是类似的&#xff0…

C#-Tolewer和ToUpper的使用

目录 简介: 好处:​ 过程: 总结&#xff1a; 简介: 字符串是不可变的&#xff0c;所以这些函数都不会直接改变字符串的内容&#xff0c;而是把修改后的字符串的值通过函数返回值的形式返回。 ToLower和ToUpper是字符串处理函数&#xff0c;用于将字符中的英文字母转换为小…

并查集 size 的优化(并查集 size 的优化)

目录 并查集 size 的优化 Java 实例代码 UnionFind3.java 文件代码&#xff1a; 并查集 size 的优化 按照上一小节的思路&#xff0c;我们把如下图所示的并查集&#xff0c;进行 union(4,9) 操作。 合并操作后的结构为&#xff1a; 可以发现&#xff0c;这个结构的树的层相对…

Spring练习---28 (用户表和角色表分析,角色列表展示,角色层和Dao层的设置,页面展示操作)

84、下面进入我们的业务层面&#xff0c;进入我们的业务层面我们先分析一个东西&#xff0c;我们要分析用户和角色的关系&#xff0c;因为我们只有在分析完用户和角色之间的关系后&#xff0c;我们才知道表的关系&#xff0c;实体的关系 85、现在我们先画一张表&#xff0c;分析…

嵌入式设备应用开发(qt界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 linux界面开发有很多的方案可以选。比如说lvgl、minigui、ftk之类的。但是,这么多年来,一直屹立不倒的还是qt。相比较其他几种方案,qt支持多个平台,这里面就包括了linux平台。此…

《Linux从练气到飞升》No.16 Linux 进程地址空间

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

node没有自动安装npm时,如何手动安装 npm

之前写过一篇使用 nvm 管理 node 版本的文章&#xff0c;node版本管理&#xff08;Windows&#xff09; 有时候&#xff0c;我们使用 nvm 下载 node 时&#xff0c;node 没有自动下载 npm &#xff0c;此时就需要我们自己手动下载 npm 1、下载 npm下载地址&#xff1a;&…

Docker创建 LNMP 服务+Wordpress 网站平台

Docker创建 LNMP 服务Wordpress 网站平台 一.环境及准备工作 1.项目环境 公司在实际的生产环境中&#xff0c;需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。 容器 系统 IP地址 软件 nginx centos…

数据结构算法--4堆排序

堆排序过程: >建立堆(大根堆) >得到堆顶元素&#xff0c;为最大元素 >去掉堆顶&#xff0c;将堆最后一个元素放到堆顶&#xff0c;此时可通过一次调整使堆重新有序 >堆顶元素为第二大元素 >重复步骤3&#xff0c;直到堆变空 此时是建立堆后的大根堆模型 将…

Docker容器:docker数据管理、镜像的创建及dockerfile案例

文章目录 一、docker数据管理1.为何需要docker数据管理2.数据管理类型3.数据卷4.数据卷容器5.容器的互联 二.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dock…

ChatGPT、Google Bard、Claude2、新BING哪一款人工智能聊天机器人适合自己

人工智能聊天机器人正在提高数无数专业人士的工作效率。下面我们就来看看目前最流行的几款强大的人工智能工具&#xff0c;以及它们具体如何帮助到你。 今年7月AI圈最大的动静之一便是AI初创公司Anthropic发布了其AI聊天机器人Claude最新版本——Claude2。该聊天机器人对标Open…

Excel/PowerPoint条形图改变顺序

条形图是从下往上排的&#xff0c;很多时候不是我们想要的效果 解决方案 选择坐标轴&#xff0c;双击&#xff0c;按下图顺序点击 效果

机器学习分类,损失函数中为什么要用Log,机器学习的应用

目录 损失函数中为什么要用Log 为什么对数可以将乘法转化为加法&#xff1f; 机器学习&#xff08;Machine Learning&#xff09; 机器学习的分类 监督学习 无监督学习 强化学习 机器学习的应用 应用举例&#xff1a;猫狗分类 1. 现实问题抽象为数学问题 2. 数据准备…

Docker容器:docker镜像的创建及dockerfile案例

文章目录 一.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dockerfile结构及分层3.2 联合文件系统3.3 docker镜像加载原理及过程 4.dockerfile操作常用的指令4.…

蓝奥声智能工业安全用电监测与智慧能源解决方案

能源管理变得越来越重要。如今&#xff0c;能源成本已成为国内预算的核心因素&#xff0c;因此用电监控对大多数现代企业来说都很重要。许多企业在日常能源消耗监控中面临着一些挑战&#xff0c;因为它们的规模庞大&#xff0c;基础设施多样化&#xff0c;灵活性低&#xff0c;…

更好的 3D 网格,从重建到生成式 AI

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 这些生成的 3D 模型通常提取为标准三角形网格。网格表示提供了许多好处&#xff0c;包括支持现有软件包、高级硬件加速和支持物理仿真。但是&#xff0c;并非所有网格都是平等的&#xff0c;这些优势只…

Linux系统下消息中间件RocketMQ下载、安装、搭建、配置、控制台rocketmq-dashboard的安装保姆级教程 rocketmq ui

这里给出我使用的 RocketMQ 版本&#xff08;5.1.3&#xff09;、RocketMQ-Dashboard 版本的百度网盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1HaKBBDGWZ0WKLGgVwIG9pw 提取码&#xff1a;1234 文章目录 一. 官网下载安装二、启动NameServer三、启动Broker四…

Elasticsearch 查询之Function Score Query

前言 ES 的主查询评分模式分为两种&#xff0c;是信息检索领域的重要算法&#xff1a; TF-IDF 算法 和 BM25 算法。 Elasticsearch 从版本 5.0 开始引入了 BM25 算法作为默认的文档评分&#xff08;relevance scoring&#xff09;算法。在此之前&#xff0c;Elasticsearch 使…

uniapp 顶部头部样式

<u-navbartitle"商城":safeAreaInsetTop"true"><view slot"left"><image src"/static/logo.png" mode"" class"u-w-50 u-h-50"></image></view></u-navbar>

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面&#xff0c;与所有 ACME v2 CA 兼容&#xff0c;为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书&#xff0c;设置 https 从未如此简单。 …