Java学习Day10:总结帖

学习第十天,发一个总结帖!

1.基本数据类型,变量

基本数据类型不用过多赘述,其在后面不论是面型对象还有其他知识等都会经常使用;

变量最重要的就是其定义:

这对于我们之后理解自定义类型变量有很大的用处,因为这两种类型的变量,定义方式差不多,学习起来有连贯性。

2.scanner和if循环

scanner

需要导入包使用;

static Scanner sc =new Scanner(System.in)可以定义在全局;sc.next定义在具体位置;

if&&for循环

if&&for中最重要的两点我认为是循环条件以及循环的跳出;

循环的条件一般通过具体情况判断;

无限循环一般内部是某一模块的开始界面,以便于该模块的子模块执行完跳回,当然循环嵌套不宜太多。

循环的跳出可以使用break、添加for(;;)或while(ture)、a:for()+breaka等。

但是结构有好还得是设置FLAG==?,

1.不用增添过多的循环层数;

2.可以针对for循环内不可以使用if--else结构的特性实现循环内的不同条件选择执行;

3.可以有效地避免程序执行顺序问题。

3.数组

数组是学习自定义数据之前很重要的铺垫,可以通过自定义数据类型实现的,一般都可以通过数组实现,只是量的区别;

数组+循环就可以实现最基本的数仓功能。

数仓案例:

=========================================================================

import java.util.Scanner;public class DataManager {public static void main(String[] args) {//数据加载:很多数--->Java如何存数据--->java知识点------>变量 和 数组----数组--->数组的定义格式double[] datas = new double[200];for (;;){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.print("请选择1----5:");Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();if (num == 1){int temp = 0;for (int i = 0;i< datas.length;i++){if (datas[i] !=0.0){temp++;System.out.println("数仓的数据有:"+datas[i]);}//如果上面一次都没进,意味着没有数据!if (temp==0){System.out.println("该数仓没有数据,请先完成添加!");break;}}} else if (num == 2) {System.out.print("请输入要修改的数据:");int updateid = scanner.nextInt();for (int i = 0;i<datas.length;i++){if (datas[i] == updateid){//提醒用户输入新的数据System.out.print("请输入新的数据:");datas[i] = scanner.nextInt();System.out.println("您已修改成功!");break;}}} else if (num == 3) {System.out.print("请输入要添加的数据:");int newdata = scanner.nextInt();//查询操作 遍历数组,找到为0.0的位置 22 22for (int i = 0;i<datas.length;i++){if (datas[i]==0.0){//该位置为空//插入数据datas[i] = newdata;System.out.println("您已添加成功!");break;//只允许每次只能插入一个!}}} else if (num == 4) {//开关 : 开int flag = 1;System.out.print("请输入要删除的数据:");int deleteid = scanner.nextInt();for (int i = 0;i< datas.length;i++){// 12  22if (deleteid == datas[i]){datas[i] = 0.0;flag = 2;System.out.println("您已删除成功!");break;}}if (flag==1){System.out.println("删除失败!");}} else if (num == 5) {System.out.println("您已成功退出!");//结束程序System.exit(0);}}}
}
=========================================================================

4.方法

定义方法时,不要考虑是我该定义有返回值还是无返回值,因为当我们调用该方法时,我们需要用值时,自然会知道;

还是三板斧!!!

编写方法三点!
1.我要干什么---决定方法体!
2.need什么东西才能干成---决定形式参数!
3.是否需要返回调用处---决定是否需要返回值及其类型!

阶段测试:学生测试系统

=========================================================================

package text;
import java.util.Scanner;
public class text {static Scanner sc =new Scanner(System.in);static int flag=0;static String [] nameList=new String[100];static String [] pwList=new String [100];static int flag1=0;public static void main(String[] args) {String stuName ="123";String stuPw = "123";for (;flag1==0;){System.out.println("在线考试练习系统");System.out.println("输入数字选择:(1.练题模式)(2.注册)(3.退出)");int num = sc.nextInt();dengluxitong(stuName, stuPw, num);}}private static void dengluxitong(String stuName, String stuPw, int num) {if (num ==1){System.out.println("===练题模式===");loginmodel(stuName, stuPw);} else if (num ==2) {System.out.println("请输入账号");String zhucename = sc.next();for (int i = 0; i < nameList.length; i++) {if (nameList[i]==null){nameList[i]=zhucename;System.out.println("请输入密码");String zhucepw = sc.next();pwList[i]= sc.next();break ;}}}tuichumodel(num);}private static void loginmodel(String stuName, String stuPw) {for (;flag==0;){System.out.println("请登录");System.out.println("请输入账号:");String na = sc.next();System.out.println("请输入密码:");String pw = sc.next();if (na.equals(stuName)&&pw.equals(stuPw)){flag =1;for (;;){System.out.println("练习题模块");System.out.println("1.水仙花  2。计算分数  3.计算偶数的和  4.偶数奇数  5.打印星星  6.退出  ");int choice =sc.nextInt();if (choice==1){shiuxianhuashu();}if (choice==2){System.out.println("任意输入五个人成绩,打印输出总分平均分:");zongchengjipingjunchengji();}if (choice==3){System.out.println("for循环计算100内所有偶数和:");oushuhe();}if (choice==4){System.out.println("0-45所有奇偶数字个数及其对应的和:");jiougeshuhetongji();}if (choice==5){System.out.println("打印星星:");xingxing();}if (choice==6){System.out.println("退出:");break ;}}//习题模块}if (flag==0){System.out.println("账号或密码错误,请重新登录");}}}private static void xingxing() {for (int i = 0; i < 8; i++) {for (int j = 0; j < i+1; j++) {System.out.print("*");}System.out.println();}}private static void jiougeshuhetongji() {int countou=0;int countji=0;int sumou=0;int sumji=0;for (int i = 0; i <=45; i++) {if (i%2==0){sumou+=i;countou++;} else if (i%2!=0) {sumji+=i;countji++;}}System.out.println("偶数个数为"+countou);System.out.println("偶数和为"+sumou);System.out.println("奇数个数为"+countji);System.out.println("奇数和为"+sumji);}private static void oushuhe() {int sum=0;for (int i = 0; i <= 100; i++) {if (i%2==0){sum+=i;}}System.out.println(sum);}private static void zongchengjipingjunchengji() {int [] arry =new int[5];int sum =0;for (int i = 0; i < arry.length; i++) {System.out.println("请输入第"+(i+1)+"个成绩:");int chengji = sc.nextInt();arry[i]=chengji;sum+=chengji;}System.out.println("总成绩:"+sum);System.out.println("平均成绩:"+sum/5);}private static void shiuxianhuashu() {System.out.println("任意输入三个数,判断是否是水仙花数:");System.out.println("请输入一个三位数:");int shuixianhuashu=sc.nextInt();if(Math.pow(shuixianhuashu % 10, 3) + Math.pow(shuixianhuashu / 10 % 10, 3) + Math.pow(shuixianhuashu / 100 % 10, 3) == shuixianhuashu){System.out.println(shuixianhuashu+"是水仙花数");}else {System.out.println(shuixianhuashu+"不是水仙花数");}}private static void tuichumodel(int num) {if (num ==3){System.out.println("退出");flag1=1;}}
}

=========================================================================

5.自定义数据类型

1.基本定义

2.数据图

1.我们为什么要定义基本数据类型

基本数据类型在存储数据时相当于是数组的集合,我们可以看到在Student中,原本需要三个数组存储的数据变成了三个属性(id,那么,age);

2.关于空间

arr是在main中定义的存储Student类型数据的数组,这个行为在栈中开辟了一块空间用来存储arr数组,其中每个位置没有数据前都是null;

下文Student  a1 = new Student()也是同样的道理,不过a1数据是Student类的,每个a1都包括三个基本属性,其中的默认值是各自数据类型的默认值。

3.赋值?

从表面看不论是arr还是a1、a2都是在main也就是堆中,但是main中只存储了他们的栈中的地址,访问时并不能直接在main中找到他们存储的数据。

arr[0]=a1;看似是赋值操作,其实是在arr[0]中存储了a1的地址,这样之后使用a[0]时就可以直接根据地址的访问;

6.连接数据库

1.sql基本操作

creata  database  test ;

drop  database  test ;

创建新表:

create table ceshi(
 
ids int auto_increment primary key,
 
uid varchar(20),
 
name varchar(20),
 
class varchar(20),
 
foreign key(class) references class(code)
 
);

    CREATE TABLE 表名称
    (
    列名称1 数据类型,
    列名称2 数据类型,
    列名称3 数据类型,
    )
 

表操作:

1. SELECT 列名称 from 表名称
2. INSERT INTO table_name(列1,列2,...) VALUES(值1,值2,...)
3 .UPDATE 表名称 set 列名称 = 新值     WHERE 列名称 = 某值

4. DELETE FROM 表名称 WHERE 列名称 = 值

2.java链接数据库操作

1.Class.forName("com.mysql.cj.jdbc.Driver"); 
// 加载MySQL JDBC驱动
2.Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false","root","123456");
// 使用DriverManager获取数据库连接

3.Connection con = getConnection(); 
// 获取数据库连接

4.PreparedStatement ps = con.prepareStatement(sql) 
// 创建PreparedStatement对象

5.书写操作及占位符(插入举例)

PreparedStatement ps =con.prepareStatement("insert into shoping (id,name,count,price) values(?,?,?,?)");
// 创建PreparedStatement对象
ps.setInt(1,id);
ps.setString(2,name);
ps.setInt(3,count);
ps.setInt(4,price);
ps.execute();
System.out.println("插入成功");

ps.按照占位符数据种类书写(1对应id,以此类推)

小案例:

aboutdb1;
import java.sql.*;
import java.util.Scanner;
public class newDBsystem {private static Connection getConnection() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver"); // 加载MySQL JDBC驱动Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false","root","123456");// 使用DriverManager获取数据库连接return con;}static Scanner sc=new Scanner(System.in);//main主类控制执行顺序public static void main(String[] args)throws Exception {while (true){System.out.println("====数仓管理系统=====");System.out.println("1.增  2.删  3.改  4.查  5.退出 ");int number = sc.nextInt();if (number==1){addmodel();}if (number==2){delmodel();}if (number==3){updatamodel();}if (number==4){checkmodel();}if (number==5){break;}}}//添加功能public static void  addmodel() throws Exception {Connection con =getConnection();System.out.println("===插入界面===");System.out.print("id:");int id = sc.nextInt();System.out.print("name:");String name =sc.next();System.out.print("count:");int count = sc.nextInt();System.out.print("price:");int price = sc.nextInt();PreparedStatement ps =con.prepareStatement("insert into shoping (id,name,count,price) values(?,?,?,?)");// 创建PreparedStatement对象ps.setInt(1,id);ps.setString(2,name);ps.setInt(3,count);ps.setInt(4,price);ps.execute();System.out.println("插入成功");}//查看功能public static void  checkmodel() throws Exception {Connection con =getConnection();String sql = "SELECT * FROM shoping";PreparedStatement ps = con.prepareStatement(sql);ResultSet rs = ps.executeQuery();System.out.println("=================================");while (rs.next()) { // 遍历结果集// 使用rs.getXXX("columnName")方法获取每一列的值,并打印出来System.out.println("ID: " + rs.getInt("id") +", Name: " + rs.getString("name") +", count: " + rs.getInt("count") +", price: " + rs.getInt("price"));}ps.execute();System.out.println("=================================");}//删除功能public static void  updatamodel() throws Exception {Connection con =getConnection();System.out.println("===修改界面===");infoidname();System.out.print("请输入所要删除的数据对应id,以及其他字段想要修改的值:");System.out.print("id:");int id = sc.nextInt();System.out.print("其他字段的值:");System.out.print("name:");String name =sc.next();System.out.print("count:");int count = sc.nextInt();System.out.print("price:");int price = sc.nextInt();PreparedStatement ps =con.prepareStatement("update shoping set name =?,count =?,price=? where id=?");ps.setString(1,name);ps.setInt(2,count);ps.setInt(3,price);ps.setInt(4,id);int i=ps.executeUpdate();if (i>0){System.out.println("修改成功!");}}//修改功能public static void  delmodel() throws Exception {Connection con =getConnection();System.out.println("===删除界面===");System.out.print("请输入所要删除的数据对应id:");int id = sc.nextInt();PreparedStatement ps =con.prepareStatement("delete from shoping where id = ?");ps.setInt(1,id);ps.execute();System.out.println("删除成功");}//查看id及namepublic static void  infoidname() throws Exception {Connection con = getConnection();System.out.println("id及名称列表:");PreparedStatement ps=con.prepareStatement("select id from shoping");ResultSet resultSet = ps.executeQuery();while (resultSet.next()){System.out.print("id:"+resultSet.getInt("id"));System.out.print("       ");}System.out.println();PreparedStatement ps1=con.prepareStatement("select name from shoping");ResultSet resultSet1 = ps1.executeQuery();while (resultSet1.next()){System.out.print("name:"+resultSet1.getString("name"));System.out.print("   ");}System.out.println();}

数据库部分不全,以后会补充!

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

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

相关文章

【从零开始实现stm32无刷电机FOC】【实践】【5/7 stm32 adc外设的高级用法】

目录 采样时刻触发采样同步采样 点击查看本文开源的完整FOC工程 本节介绍的adc外设高级用法用于电机电流控制。 从前面几节可知&#xff0c;电机力矩来自于转子的q轴受磁力&#xff0c;而磁场强度与电流成正比&#xff0c;也就是说电机力矩与q轴电流成正相关&#xff0c;控制了…

通信网络机房服务器搬迁流程方案

数据中心机房搬迁是一项负责高难度的工程。整个搬迁过程充满挑战&#xff0c;伴随着各种风险。如何顺利的完成服务器的迁移&#xff0c;需要专业的数据中心服务商全程提供保障。友力科技&#xff08;广州&#xff09;有限公司&#xff0c;作为华南地区主流的数据中心服务商&…

Leetcode3208. 交替组 II

Every day a Leetcode 题目来源&#xff1a;3208. 交替组 II 解法1&#xff1a;环形数组 把数组复制一份拼接起来&#xff0c;和 3101 题一样&#xff0c;遍历数组的同时&#xff0c;维护以 i 为右端点的交替子数组的长度 cnt。 如果 i ≥ n 且 cnt ≥ k&#xff0c;那么 i…

【java】力扣 跳跃游戏

文章目录 题目链接题目描述代码1.动态规划2.贪心 题目链接 55.跳跃游戏 题目描述 代码 1.动态规划 1.1 dp数组的含义 dp[i]&#xff1a;从[0,i]的任意一点处出发&#xff0c;你最大可以跳跃到的位置。 例如nums[2,3,1,1,4]中: dp[0]2 dp[1]4 dp[2]4 dp[3]4 dp[4]8&#xff…

【思科】链路聚合实验配置和背景

【思科】链路聚合实验配置和背景 背景链路聚合基本概念链路聚合聚合接口 思科链路聚合协议01.PAgP协议02.LACP协议 思科链路聚合模式LACP协议模式PAgP协议模式ON模式 实验准备配置二层链路聚合LACP协议模式SW1SW2PC1PC2查看LACP聚合组建立情况查看LACP聚合端口情况查看逻辑聚合…

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(三)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 DHTMLX Gantt是一个高度可定制的工具&#xff0c;可以与项目管理应用程序所需的其他功能相补充。在本文中您将学习如何使用自定义上…

设计模式——模版方法和策略模式

前言 作为一名资深CV工程师&#xff0c;学会为自己减少工作量乃重中之重。但只是一味地CV&#xff0c;只会因为劣质代码而让自己的工作量加倍&#xff0c;为了将来不被繁重的维护工作而打扰自己的休息日&#xff0c;为了更好的节能&#xff0c;学习设计模式&#xff0c;刻不容缓…

数据结构_Map和Set

目录 一、搜索模型 二、Map 2.1 Map.Entry 2.2 Map 方法 2.3 Map 注意事项 三、Set 3.1 Set 方法 3.2 Set 注意事项 四、哈希表 4.1 哈希表 4.2 冲突 4.3 哈希函数设计 4.4 闭散列 4.5 开散列/哈希桶 总结 【搜索树】 二叉搜索树又称二叉排序树&#xff0c;它或…

spring-boot 整合 redisson 实现延时队列(文末有彩蛋)

应用场景 通常在一些需要经历一段时间或者到达某个指定时间节点才会执行的功能&#xff0c;比如以下这些场景&#xff1a; 订单超时提醒收货自动确认会议提醒代办事项提醒 为什么使用延时队列 对于数据量小且实时性要求不高的需求来说&#xff0c;最简单的方法就是定时扫描数据…

语音合成-TTS文字转语音(专业版)

语音合成-TTS文字转语音(专业版) 一、工具简介 *使用强大的智能AI语音库&#xff0c;合成独具特色接近真人语音的朗读音频。 *使用极具表现力和类似人类的声音&#xff0c;使文本阅读器和已启用语音的助理等方案栩栩如生。 *用途&#xff1a;这个语音工具&#xff0c;不仅可…

【C语言初阶】C语言数组基础:从定义到遍历的全面指南

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言函数 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀数组 &#x1f4d2;1. 什么是数组…

【C++】学习笔记——AVL树

文章目录 十六、AVL树1. AVL树的概念2. AVL树节点的定义3. AVL树的插入4. AVL树的旋转5. AVL树的验证6. 完整代码测试7. AVL树的性能 未完待续 十六、AVL树 1. AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&…

前端基础之JavaScript学习——函数的使用

大家好我是来自CSDN的前端寄术区博主PleaSure乐事&#xff0c;今天我们继续有关JavaScript的学习&#xff0c;使用的编译器为vscode&#xff0c;浏览器为谷歌浏览器。 函数的声明与使用 声明 在JavaScript当中函数的声明和其他语言类似&#xff0c;使用如下格式即可声明&…

实战篇(十):使用Processing创建可爱花朵:实现随机位置、大小和颜色的花朵

使用Processing创建可爱花朵 0.效果预览1. 引言2. 设置Processing环境3. 创建花朵类4. 实现花瓣绘制5. 绘制可爱的笑脸6. 鼠标点击生成花朵7. 完整代码8. 总结与扩展0.效果预览 在本教程中,我们将使用Processing编程语言来创建一个可爱的花朵生成器。通过封装花朵为一个类,并…

大语言模型-检索测评指标

1. MRR &#xff08;Mean Reciprocal Rank&#xff09;平均倒数排名&#xff1a; 衡量检索结果排序质量的指标。 计算方式&#xff1a; 对于每个查询&#xff0c;计算被正确检索的文档的最高排名的倒数的平均值&#xff0c;再对所有查询的平均值取均值。 意义&#xff1a; 衡量…

【STM32】按键控制LED光敏传感器控制蜂鸣器(江科大)

一、按键控制LED LED.c #include "stm32f10x.h" // Device header/*** 函 数&#xff1a;LED初始化* 参 数&#xff1a;无* 返 回 值&#xff1a;无*/ void LED_Init(void) {/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENAB…

199.二叉树的右视图(DFS)

给定一个二叉树的根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 解题…

贪心算法总结(1)

一、贪心算法简介 常用方法&#xff1a;交换论证法、数学归纳法、反证法、分类讨论 二、柠檬水找零&#xff08;交换论证法&#xff09; . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool lemonadeChange(vector<int>& bills) {int five0,t…

【考研数学】线代满分经验分享+备考复盘

我一战二战复习都听了李永乐的线代课&#xff0c;二战的时候只听了一遍强化&#xff0c;个人感觉没有很乱&#xff0c;永乐大帝的课逻辑还是很清晰的。 以下是我听向量这一章后根据听课内容和讲义例题总结的部分思维导图&#xff0c;永乐大帝讲课的时候也会特意点到线代前后联…

TK秘籍:深度剖析机房IP与住宅IP的利与弊

大家好&#xff0c;今天我们来聊聊TikTok运营中的一个重要环节——IP地址的选择。 想象一下&#xff0c;你在TikTok上发布视频&#xff0c;就像是在一个热闹的市集上摆摊&#xff0c;而IP地址就是你的摊位位置。选对了位置&#xff0c;你的摊位就能吸引更多顾客&#xff0c;也…