JAVA IO流项目----本地文档实现简单通讯录存储

基于Vue、Nodejs、Socket.io的聊天应用 一直想实现一个聊天应用demo,尝试一下Socket.IO这个框架,同时看到网上的教程很多关于使用node开发聊天应用的demo都是聊天室形式的,也就是群聊,很少有实现私聊的。所以想自己实现一次。 阅读详情

1.Title

用Java语言实现通讯录管理系统

2.Requests

  1. 设计一个能够记录学生通讯录的数据结构(比如包括:学号,姓名,年龄,性别,联系电话,住址等)。
  2. 应用文件(或数据库)保存通讯录数据。
  3. 新增:能将所有输入的通讯录数据保存到文件中,并可选择继续输入或退出。
  4. 查找:输入学生的学号,并在文件中查找,若找到,则显示该学生详情,否则提示未找到。
  5. 删除:输入学生的学号,并在文件中查找;若找到,提示是否确定删除;若选择是,则删除文件中该学生信息;若选择否,则取消,否则提示无此学生信息
  6. 修改:输入学生的学号,并在文件中查找;若找到,显示学生的所有信息,并可进行输入。完成后将现输入的内容覆盖原内容保存到文件中。否则提示无此学生信息。
  7. 退出:退出程序

3.Readme

  1. 不要自己创建用来存储数据的txt文件,代码会自动创建,代码运行后要添加一个人员信息(只要添加过一个人员信息就行,添加后接着删除了也可以,因为添加第一个人员信息之后会创建文件头部格式,删除人员信息的时候不会删除文件头部格式),不然第二次运行的时候会出现一个空的文本文档,而这个空的文档与文档插入数据的格式不匹配,会导致运行失败,此时应当删除空的文档,重新运行代码,让代码帮你新建一个文件。注意:虽然自己创建在本地的储存数据的文件是txt格式的,但是ObjectOutputStream处理输出输出的内容不是文本格式,如果用记事本打开会是乱码。解释摘抄如下:
  2. 1.ObjectOutputStream 对Java对象进行序列号处理,处理后的数据,不是文本数据,
       所以,该数据虽然是保存到文件中,用文本编辑器打开,必乱码。
    2.输出流,在写入之后,一般都会调用flush方法,将缓冲区的数据刷到IO中去
       (当然,楼主的目的地是硬盘文件中)。IO读写,一般情况下,操作系统也会建立一定大小的缓冲区。
    3.输出流,在所有写入操作都做完后,应该关闭IO流,调用close方法。
        除了可以回收系统资源外,也会强制刷新系统缓冲区中的数据至硬盘。
    4.object_in引用对应的是输入流对象,流是流动的,当你上面写入一个对象到文件中后,
        下面就只能从那个文件中读取一个对象,再调用读取方法,什么也读不到。
        所以,System.out.println(object_in.readObject());的参数应该是li。
    5.输入流在读取完成后,也要进行关闭,回收系统资源。

    最后,回答楼主说的乱码问题,我上面已经说明了,
    楼主应该仔细理解Java对象的序列话操作到底干了什么。
    它不是简单的把对象属性值写入IO流中,而是按照一定的数据格式写入的。
    而这种格式,不是记事本、写字板、Word等文本编辑器能够识别的,
    因为,这些数据,压根就不是文本数据。
    只有使用相同版本的Java的ObjectInputStream来进行读取操作。
    并且,流数据,在没有缓冲区的情况下,是不能读取重复数据的。
    也就是说,如果,我的文本文件中,存放12345这五个字符,
    那么,我用流读取一个字符,第一个是字符1,第二次读取,必然是字符2,
    不可能还是字符1,除非你用带缓冲区缓的流对象,这样,你在读取前先做标记,
    读取完了,可以回退到标记处,重复读取数据,
    当然,数据的当前位置和标记位置之间的距离不能超过缓冲区的大小。

4.Code

package top.oneluckyguy.pro;

/**
 * @author Liu Qingfeng
 * @create 2020-12-18----15:57
 */

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Student implements Serializable{

    private static final long serialVersionUID = 1L;
    private String number;//学号
    private String name;//姓名
    private String age;//年龄
    private String sex;//性别
    private String phone;//手机号码
    private String address;//地址
    private String email;//邮箱

    static final String Files="d:/addressBook.txt";//文件存放的路径
    static Scanner input=new Scanner(System.in);//创建静态输入流对象
    List<Student> listStudent=new ArrayList<Student>();
    static File f=null;

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        Student a=new Student();
        f = new File(Files);//将一个字符串描述的路径,封装成一个File对象。
        if(!f.exists())//判断文件是否存在
        {
            f.createNewFile();//不存在则创建一个文件
        }
        else
        {
            a.readStduent();//存在的话就通过反序列化读取数据
        }
        int n=1;//作为循环条件(1相当于true)
        String m;
        while(n!=0)
        {
            menu();
            System.out.println("请输入想要进行的操作:");
            m=input.next();
            switch(m)
            {
                case "1":
                    a.add();
                    break;
                case "2":
                    a.remove();
                    break;
                case "3":
                    a.modify();
                    break;
                case "4":
                    a.find();
                    break;
                case "5":
                    a.show();
                    break;
                case "6":
                    n=0;
                    break;
                default:
                    System.out.println("输入无效请重新输入");
            }
        }
        System.out.println("程序退出成功!!");
    }

    //有参构造函数
    public Student(String number,String name,String age,String sex,String phone,String address,String email)
    {
        this.number=number;
        this.name=name;
        this.age=age;
        this.sex=sex;
        this.phone=phone;
        this.address=address;
        this.email=email;
    }

    //无参构造函数
    public Student()
    {

    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    //重写toString方法
    public String toString() {
        return "[学号:" + number + ", 姓名:" + name + ", 年龄:" + age +", 性别:" + sex +", 手机号码:" + phone + ", 地址:" + address + ", 邮箱"
                + email + "]";
    }

    /*
     * 通过反序列化从文件里面获取数据
     */
    void readStduent() throws FileNotFoundException, IOException, ClassNotFoundException
    {
        ObjectInputStream ins;
        ins=new ObjectInputStream(new FileInputStream(Files));
        listStudent = (List<Student>) ins.readObject();
        ins.close();
    }

    /*
     * 实现增删改操作的方法
     */

    //添加方法
    void add()
    {
        System.out.println("请分别输入 学号,姓名,年龄,性别,手机号,地址,邮箱(每条信息以回车分割)");
        String number=input.next();
        String name=input.next();
        String age=input.next();
        String sex=input.next();
        String phone=input.next();
        String address=input.next();
        String email=input.next();
        int flag1 = 1;
        Student s1=new Student(number,name,age,sex,phone,address,email);
        ObjectOutputStream out = null;
        for (Student s:listStudent){
            if (s.getNumber().equals(number)){
                flag1 = 0;
            }
        }
        if(flag1 == 0){
            System.out.println("添加信息失败,已有此学号的学生的信息");
        }else{
            try {
                System.out.println("");
                listStudent.add(s1);
                System.out.println(s1 +"已存储到本地");
                out=new ObjectOutputStream(new FileOutputStream(Files));
                out.writeObject(listStudent);
            } catch (IOException e) {
                e.printStackTrace();
            }finally
            {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("如果相继续输入学生数据请输入1,输入其他字符返回上一级");
            String flag=input.next();
            if(flag.equals("1")){
                add();
            }
        }
    }

    //删除方法(通过学号删除)
    void remove()
    {
        int flag3 = 0;
        System.out.println("请输入想要删除的学生信息的学号:");
        String number=input.next();
        for(Student s:listStudent)
        {
            if(s.getNumber().equals(number))
            {
                System.out.println("是否真的要删除y/n?");
                checkDelete(s);
                return;
            }
        }
        System.out.println("删除失败,没有找到此人!!");
    }
    void checkDelete(Student s){
        String flag = input.next();
        if ("y".equals(flag)){
            ObjectOutputStream out1 = null;
            listStudent.remove(s);
            System.out.println("删除成功!");
            try {
                out1=new ObjectOutputStream(new FileOutputStream(Files));
                out1.writeObject(listStudent);
            } catch (IOException e) {
                e.printStackTrace();
            }finally
            {
                try {
                    out1.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }else if ("n".equals(flag)){
            System.out.println("取消删除成功");
        }else{
            System.out.println("输入不合法,请输入y或者n");
            checkDelete(s);
        }
    }

    //通过学号修改个人信息
    void modify()
    {
        System.out.println("请输入想要修改的个人信息的学号:");
        String number=input.next();
        int flag = 1;
        ObjectOutputStream out2 = null;
        for(Student s:listStudent)
        {
            if(s.getNumber().equals(number))
            {
                System.out.println(s);
                flag = 0;
            }
        }
        if (flag == 1){
            System.out.println("修改失败,没有此学生信息");
        }else{
            for(Student s:listStudent)
            {
                if(number.equals(s.getNumber()))
                {

                    System.out.println("请依次输入修改之后的: 学号,姓名,年龄,性别,手机号码,地址,邮箱");
                    String number1=input.next();
                    String name1=input.next();
                    String age1=input.next();
                    String sex1=input.next();
                    String phone1=input.next();
                    String address1=input.next();
                    String email1=input.next();
                    int flag2 = 1;
                    for (Student st:listStudent){
                        if (st.getNumber().equals(number1)&& !number.equals(number1)){
                            flag2 = 0;
                        }
                    }
                    if(flag2 == 0){
                        System.out.println("修改信息失败,已有此学号的学生的信息");
                    }else{
                        System.out.println("修改学生信息成功");
                        s.setNumber(number1);
                        s.setName(name1);
                        s.setAge(age1);
                        s.setSex(sex1);
                        s.setPhone(phone1);
                        s.setAddress(address1);
                        s.setEmail(email1);
                   
                        try {
                            out2=new ObjectOutputStream(new FileOutputStream(Files));
                            out2.writeObject(listStudent);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }finally
                        {
                            try {
                                out2.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
        }


    }

    //显示所有人信息
    void show(){
        if (listStudent.isEmpty()){
            System.out.println("您的个人通讯录为空");
        }
        for(Student s:listStudent)
        {
            System.out.println(s);
        }
    }
    //查找(通过姓名或地址)
    void find()
    {
        System.out.println("请输入学号:");
        String number=input.next();
        for(Student s:listStudent)
        {
            if(s.getNumber().equals(number))
            {
                System.out.println(s);
                return;
            }
        }
        System.out.println("查无此人!!");
    }

    //菜单方法
    static void menu()
    {
        System.out.println("*******************************************************");
        System.out.println("〓〓〓〓〓〓〓〓〓〓 * 个人通讯录 * 〓〓〓〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  1、添加个人信息  *   〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  2、删除个人信息  *   〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  3、修改个人信息  *   〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  4、查找个人信息  *   〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  5、显示所有信息  *   〓〓〓〓〓〓〓〓");
        System.out.println("〓〓〓〓〓〓〓〓  *  6、exit         *   〓〓〓〓〓〓〓〓");
    }
}
Java ME功能机通讯录源码包:Eclipse工程全含拼音检索、图标资源与JAD/JAR可部署文件 一套开箱即用的Java ME手机通讯录应用,专为诺基亚、索尼爱立信等老式功能机设计,基于Eclipse IDE开发,完整保留项目元数据(.project、.classpath、.settings等),支持直接导入编译。源码包含核心业务类TelBook.java、联系人模型Contact.java、本地记录存储工具RecordStoreUtil.java,以及拼音转换(HGB2PINYIN.java)、按姓名拼音排序(NameComparatorbyPinYin.java)和模糊搜索过滤(NameFilter 阅读详情

相关推荐

Java通讯录(采用文件存储)

绝对能用,这个是用文件写的通讯录,没有涉及到数据库,只要电脑装了JVM,双击就可以用了,如果需要源代码,加我QQ:284856820

Java简易通讯录

Java通讯录实现

weixin_53972936的博客 6232

基于文件实现的个人通讯录系统.doc

基于文件实现的个人通讯录系统.doc

简单通讯录管理系统(Java)

在 MenuPhone.java 中有 5 个选项,实现这几个选项的功能;获取键盘输入的值,如果为 1、2、3、4,分别调用 PhoneManage.java 的方法实现这四个功能,之后返回主菜单,也就是将通讯录信息管理页面的内容重新打印输出;如果为 5 ,退出程序,并输出:“退出成功!”;如果输入的是其它值时,输出:“选择错误!”,返回主菜单。注意:PhoneMange 类并没有实例化 Scannner 对象,本文仅仅简单介绍了通讯录的增删改查等基本功能,主要实现一个通讯录的菜单管理功能。

m0_65420451的博客 5100

用JAVA做的通讯录(精简版)

一个简易的Java通讯录小项目 功能(增,删,改,查)

java 版通讯录(文件)

初学者课程设计 ,java版的通讯录,文件操作,供大家参考。

Java简易通讯录管理系统

最近整理之前写过的东西发现了这个以前写的简易通讯录管理系统^ - ^。1)添加联系人2)删除联系人3)查找联系人4)修改联系人5)显示所有联系人。

Stephen_Curry___的博客 3633

java版通讯录管理系统

实现了以下要求说明的功能: 1.要求使用GUI,采用 Swing 技术数据存储采用文件系统(可以是文本 文件、xml 文件、vCard 文件或其他自定义格式文件,但不能是 Excel 文件)。不 使用数据库。 2. 通讯录中每个项目包括: ( 1)基本信息:姓名、手机号码、电子邮箱、生日、所属组、备注、像片。 ( 2)工作单位:国家、省份、城市、地址、工作单位、所属部门、职位、 邮编、电话、传真 ( 3)网络信息:个人主页、即时通信工具及号码、备用邮箱 ( 4)家庭资料:国家、省份、城市、地址、邮编、电话 3 .通讯录数据的录入功能:输入并存储新的通讯录数据,输入时如果有同 名或同电话号码时,应该给出提示。 4 .通讯录数据的查询功能: ( 1)默认列出所有条目。 ( 2)模糊查询,可以按:姓名、电话号码、手机、姓名的汉语拼音的声母 或全拼查询。支持模糊查询即输入部分数据后,可以查询出符合条件的全部条目。 如:输入“张”,列出所有名字中有“张”的条目;输入“ 2645”列出电话中有 该 4个数字的所有条目;输入“xl ”,列出声母为该 2 个字母的所有条目 ( 3)指定分组后,列出某分组的所有条目 说明:查询结果如果有多个条目,应按照姓名排序,并使用姓或姓的第一 个汉语拼音的字母分类。 5 .删除和修改功能:查询到一个条目后,可以删除该条目或修改条目内容。 6 .通信录内容的导入和导出功能。要求能够以CSV 格式和 vCard 格式导入 和导出通讯录的全部内容。并能够与主流手机或其他通讯录软件交换数据。 7 .通讯录显示设置,可以设置在显示查询结果时,一个条目可以显示或不 显示哪些内容。 注意:本系统实现了读取和保存csv文件,同时csv文件中只保存了图片的路径。

java开发一个简单的通讯录

java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{ static Scanner sc=new Scanner(System.in); static ArrayList<Contact> list = new ArrayList<>(); public static void main(String[] args){ Friends x1 = new Friends('

weixin_46659330的博客 6344

使用Java的文件操作实现一个简单的通讯录管理系统.txt

这个代码实现了一个简单的通讯录管理系统,主要使用了Java的文件操作。 首先定义了一个Contact类,用于存储联系人的姓名和电话号码。 然后定义了一个AddressBook类,用于管理通讯录。在构造函数中,传入一个文件名参数,用于指定通讯录保存的文件。在构造函数中还调用了loadContactsFromFile()方法,从文件中读取已保存的通讯录数据。 loadContactsFromFile()方法使用FileInputStream和ObjectInputStream对象来读取文件中保存的Contact对象列表。如果读取失败,会抛出IOException和ClassNotFoundException异常,此时会调用saveContactsToFile()方法将当前通讯录数据保存到文件中。 saveContactsToFile()方法使用FileOutputStream和ObjectOutputStream对象将通讯录数据写入文件中。如果写入失败,会抛出IOException异常。 addContact()方法用于添加新的联系人信息到通讯录中,并自动将更新后的通讯录数据保存

本地大模型部署实战:LM Studio与Ollama的易用性与性能深度评测

本文对两款主流本地大模型部署工具LM Studio和Ollama进行了深度评测。LM Studio凭借图形化界面和内置模型库,为新手提供了开箱即用的便捷体验,并支持OpenAI兼容API,易于生态集成。Ollama则以命令行驱动,轻量高效,凭借其原生API和Modelfile自定义能力,在自动化集成和性能方面表现突出。文章从易用性、模型生态、性能及扩展性多维度对比,帮助用户根据自身技术背景和使用场景做出最佳选择。

weixin_29039773的博客 529

Android 个人手机通讯录开发

Android 个人手机通讯录开发   数据存储:SQLite 数据库   开发工具:Android Studio Phone Module 简介 界面展示 文件结构简单分析 个人手机通讯录代码实现 清单文件 (AndroidManifest.xml) <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk...

cnmeimei的博客 1483

迅投miniQMT量化交易之【网格交易】的实现(25)——写在最后

和大家一起分享如何使用miniQMT实现我们自己的网格交易系统。如果您对量化交易感兴趣,欢迎一起交流。

tzzqn2008的专栏 829

有哪些适合Java初学者的实战项目推荐?

这些项目覆盖了Java核心语法到主流开发技术的过渡,建议按顺序完成并重点理解设计思路而非机械编码。遇到问题时优先查阅官方文档(如Oracle Java Docs),这将显著提升自学能力。:掌握基本语法、流程控制、异常处理。:实践网络编程、JSON解析。:熟悉集合框架、IO流操作。:理解面向对象、多线程基础。:接触企业级开发框架。

2509_94270629的博客 119

智能体在车联网中的应用:第31天 基于RLlib的多智能体PPO实战:MAPPO算法解决simple_spread合作任务

本文介绍了如何利用RLlib框架实现多智能体强化学习算法MAPPO,解决simple_spread任务。首先分析了RLlib的架构设计理念和多智能体支持特性,包括策略映射、环境包装等核心组件。然后详细解析了simple_spread环境的任务定义、观察空间和奖励函数设计。最后回顾了MAPPO算法原理,说明其如何在RLlib中实现集中式训练与分布式执行的CTDE范式。文章提供了完整的安装指南和环境配置方法,帮助读者快速搭建多智能体强化学习实验环境。

IT深耕十余载,大道之简 1333

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 387

Java学习路径及练手项目合集

Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了。 实验楼上的【Java 学习路径】中将首先完成 Java基础、JDK、JDBC、正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习。通过使用 Java 语言实现日记本,个人相册、编辑器、通讯录等,学习并实践 Java 编程基础,SSH 项目实战以及Java Web 应用开发。 完整的Java学习路...

alss13237的博客 178

openclaw 保姆级部署与核心玩法解析:国产DeepSeek模型 + 飞书

OpenClaw是一款功能强大的开源AI个人助理,支持全平台私有化部署,数据完全本地掌控。它不仅可通过聊天窗口直接操控电脑(安装软件、创建项目),还支持接入飞书等主流通讯工具,化身24小时在线的智能助理。本文提供了从零开始的详细部署教程,涵盖基础安装、模型配置(如GLM-4、DeepSeek)到飞书集成的完整实战指南,助你将这款“核动力”AI助手快速融入日常工作流。

甘蓝的专栏 3000

Android 开发理论流

此流程适用于从零开始的开发者,可根据个人兴趣调整侧重点(如偏重 UI 或底层)。列表,支持下拉刷新、分页加载和多种 item 类型。Android 核心组件。NDK/ROM 定制。

imMikezhang的博客 724

医学图像处理实战:利用OpenSlide解析病理SVS切片的完整解决方案

本文介绍了使用openslide处理病理SVS切片的完整流程,从基础安装到科研应用。主要内容包括:1)SVS切片特点及openslide工具简介;2)环境配置与软件安装;3)基础操作:读取切片、查看信息、可视化不同层级图像;4)进阶操作:坐标裁剪与批量处理;5)科研方向拓展:结合AI模型进行病理分割分类、量化分析及可视化报告。教程提供了完整的代码示例,帮助毕业设计学生快速掌握病理图像分析的核心技能。

m0_71589036的博客 312

IPOP 使用详解 (附IPOP工具包)

IP 地址动态绑定功能;路由信息查询和配置功能;MAC 地址信息查询和修改功能;MAC 、主机信息扫描功能;本机网络报文统计功能;本机端口列表、远程端口扫描功能;端口映射功能;网卡流量统计功能;本机 IP 报文捕获和发送功能;终端控制功能(支持 telnet 、 dos、 ssh、 sftp 、ftp、com 等协议);TCL 脚本支持;多种服务功能( tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp );

悦分享 1万+

用Java语言实现一个电话簿用文本文档储存并实现新增删除修改等功能的控制台小程序

具体功能介绍: 若不存在储存信息的文本文档首先会创建文档,若存在则判断是否为空,若为空则输出电话本为空,若不为空则加载文档内的数据。 加载完成后,用户可以根据输入0~6选择具体功能完成相关操作。 具体代码如下: 在一个Java项目telBook下建两个包分别为main包和netty netty包中含有类TelInfo package netty; public class TelInfo { private String name; private String num; public Tel

m0_47373528的博客 795

【YOLOv11改进- 主干网络】YOLOv11+WTConv(ECCV2024): 基于YOLOv11的主干网络改进,大感受野的小波卷积

论文提出了WTConv,这是一个使用级联小波分解的层,并执行一组小卷积核的卷积,每个卷积专注于输入的不同频率带,并具有越来越大的感受野。这个过程能够在输入中对低频信息给予更多重视,同时仅增加少量可训练参数。实际上,对于一个  的感受野,可训练参数数量只随着  的增长而呈对数增长。而WTConv与常规方法的参数平方增长形成对比,能够获得有效的卷积神经网络(CNN),其有效感受野(ERF)大小前所未有。

qq_41304809的博客 1401

基于数据加密的电子邮件系统设计-计算机毕业设计源码+LW文档

在密钥管理方面,国外学者也提出了不少密钥分发、密钥更新和密钥撤销的机制,就为了把邮件系统的安全性和可靠性提上去。本文首先概述了当前基于数据加密的电子邮件系统的现状,然后深入研究了关键技术,包括Java语言、SpringBoot框架、Vue技术,并选用SM9算法进行数据加密。因此,基于数据加密的电子邮件系统应运而生,它通过对邮件内容进行加密处理,确保信息在传输和存储过程中的保密性。随着技术的不断进步和应用的不断深化,这一系统将在未来发挥更加重要的作用,为构建安全、可靠的网络环境提供有力支持。

qq_375279829的博客 1009

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java开发学习路线

这是一套系统的Java开发学习路径,分为四个阶段:基础语法(1-2个月)、进阶框架(2-3个月)、项目实战(2-3个月)和就业准备(1-2个月)。建议采用"学-练-用"闭环模式,从基础语法开始,逐步掌握Spring等主流框架,通过实际项目(如电商系统)整合Redis、RabbitMQ等技术栈。学习过程中要注重动手实践,避免死记硬背,每周进行复盘总结。推荐结合优质教材和视频资源,重点培养问题解决能力,6-10个月可达到企业级开发水平。

Rsun2018的博客 822

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java语言基础

Java就是一种高级计算机语言,它是由SUN公司(现已被Oracle公司收购)于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。Java语言简单易用、安全可靠,自问世以来,与之相关的技术和应用发展得非常快。在计算机、移动电话、家用电器等领域中,Java技术无处不在。针对不同的开发市场,SUN公司将Java划分为三个技术平台,它们分别是JavaSEJavaEE和JavaME。●Java SE(Java Platform Standard Edition)标准版。

m0_74837480的博客 909

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: Java高级知识复习----Map
下一篇: Java高级知识复习----泛型
Renaissance14th
博客等级 码龄9年 39粉丝 72原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值