Java基础 每日Study

Java后端面试7天冲刺:系统化复习八股文与场景题实战 Java作为企业级应用开发的核心语言,其知识体系涵盖语言基础、并发编程、JVM虚拟机、数据库与主流框架等多个维度。理解这些技术的底层原理,如JVM内存模型、Spring IOC容器机制、MySQL索引与事务实现,是构建高性能、高可用后端系统的基石。掌握这些原理不仅能提升代码质量,更能有效解决分布式场景下的并发控制、数据一致性等工程难题。对于即将参加Java后端岗位面试的开发者而言,如何高效整合这些零散且深度的知识点,并通过场景题训练将理论转化为解决实际问题的能力,成为面试成功的关键。本文聚焦于Java并发编 阅读详情

快捷输入

pvsm              public static void main(String[] args)
sout              System.out.println();
5.fori            for (int i = 0; i < 5; i++)
array.fori        for (int i = 0; i < array.length; i++)

Scanner

1 导包

import java.util.Scanner;
导包的动作必须出现在类定义的上边

2 创建对象

Scanner sc = new Scanner(System.in);
上面这个格式里面,只有sc是变量名,可以变,其它的都不允许变

3 接收数据

int i = sc.nextInt();//数字
String str=sc.next();//字符串
上面这个格式里面,只有i是变量名,可以变,其它的都不允许变

在这里插入图片描述
在这里插入图片描述
Random
作用 :用于产生一个随机数

1 导包

import java.util.Random;
导包的动作必须出现在类定义的上面

2 创建对象

Random r = new Random();
上面这个格式里面,r是变量名,可以变,其它的都不允许变

3 获取随机数

int number = r.nextInt(10);//获取数据的范围:[0,10)包括0,不包括10
上面这个格式里面,number是变量名,可以变,其它的都不允许变

数组定义

   int[] a =new int[10];//动态初始化
   String[] b=new String[1010];

面向过程与面向对象

面向过程(强调步骤):当需要实现一个功能的时候,每一个具体的步骤都要亲历亲为,详细处理每一个细节

面向对象(强调对象):当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事

面向对象思想是一种更符合我们思考习惯的思想,将复杂事情简单化,从执行者转变为指挥者,面向对象的语言,包含三大特征:封装、继承和多态
在这里插入图片描述

package face;

import java.util.Arrays;

public class demo {
    public static void main(String[] args) {
        int[] array={1,2,3,4,5};

        //打印出这样格式的数组[1, 2, 3, 4, 5]
        //使用面向过程,每一步都要亲历亲为
        System.out.println("面向过程");
        System.out.print("[");
        for (int i = 0; i < array.length; i++) {
            if(i==0)
                System.out.print(array[i]);
            else
                System.out.print(", "+array[i]);
        }
        System.out.println("]");

       //使用面向对象
        //找一个JDK给我们提供好的Arrays类
        //其中有一个toString方法,直接就能把数组编程想要的格式字符串
        System.out.println("面向对象");
        System.out.println(Arrays.toString(array));//面向对象直接可以实现
    }
}

在这里插入图片描述

类与成员变量

public class Student {
    String name;
    int age;
    public void eat() {
         System.out.println("吃饭");
    }
    public void sleep() {
        System.out.println("睡觉");
    }
    public void study() {
        System.out.println("学习");
    }
}
public class demo {
    public static void main(String[] args) {
        Student stu =new Student();//定义一个stu类
        System.out.println(stu.name);
        System.out.println(stu.age);
        stu.name="aaa";
        stu.age=18;//name,age都是成员变量
        System.out.println(stu.name);
        System.out.println(stu.age);
    }
}

在这里插入图片描述

ArrayList创建与使用

import java.util.ArrayList;

public class demo01 {
    public static void  main(String[] args) {
     ArrayList<String> list=new ArrayList<>();//创建
        System.out.println(list);
        list.add("abc");
        System.out.println(list);
        list.add("abcc");
        list.add("abccc");
        list.add("abccccc");
        System.out.println(list);
    }
}

在这里插入图片描述

package fass;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
/*
ArrayList当中的常用方法
public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致,返回值代表是否添加成功
public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素
public E remove(int index):删除元素,参数是索引编号,返回值就是被删掉的元素
public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数
 */
public class demo01 {
    public static void  main(String[] args) {
     ArrayList<String> list=new ArrayList<>();
        System.out.println(list);
        //向集合中添加元素:add
        //对于ArrayList添加是一定成功的,所以返回值可用可不用
        //但是对于其它集合来说,add添加动作不一定成功
        boolean success =list.add("张三");
        System.out.println(list);
        System.out.println("添加的动作是否成功:"+success);
        list.add("李四");
        list.add("王五");

        //获取查询
        String name=list.get(2);
        System.out.println("2号:"+name);

        //删除
        String name1=list.remove(1);
        System.out.println("删除:"+name1);
        System.out.println(list);
        //计算ArrayList的长度,也是元素个数
        int l=list.size();
        System.out.println("长度:"+l);
        System.out.println("-----------");
        //遍历ArrayList
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

统计字符串字符出现的次数

ToCharArray( )的用法:将字符串对象中的字符转换为一个字符数组。

package pac;

import java.util.Scanner;

public class clas {
    public static void main(String[] args) {
        String strin=new String();
        System.out.println("输入一个字符串:");
        Scanner sc=new Scanner(System.in);
        
        String str=sc.next();//从键盘输入一个字符串,但这个字符串不是数组
        
        char[] str1=str.toCharArray();//转换为数组才可以用下面的if语句
        
        int ans=0,ans1=0,ans2=0,ans3=0;
        for (int i = 0; i < str.length(); i++) {
            if (str1[i]>='A'&&str1[i]<='Z')
                ans++;
            else if (str1[i]>='a'&&str1[i]<='z')
                ans1++;
            else if (str1[i]>='0'&&str1[i]<='9')
                ans2++;
            else
                ans3++;
        }
        System.out.println("大写:"+ans+"小写:"+ans1+"数字:"+ans2+"其它:"+ans3);
    }
}

Sort用法:对数字或字符串排序

 String str="sbhjbjhbdefbjfvbfnhjbf";//字符串
       char[] str1=str.toCharArray();//转换为字符数组
       Arrays.sort(str1);//对字符数组进行排序

Date计算日期类问题

public static void main(String[] args) throws ParseException {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入出生日期:");
        String birthday=sc.next();//获取字符串
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");//注明输入的日期的格式
        Date bir=sdf.parse(birthday);//使用DateFormat的parse把字符串的出生日期解析为Date格式
        long birtime=bir.getTime();//转换为毫秒值

        long todaytime=new Date().getTime();//获取当前时间,转换为毫秒值
       // System.out.println(todaytime);
        long time=todaytime-birtime;
        System.out.println(time/1000/60/60/24);//计算天数
    }
public class Test01 {
    public static void main(String[] args) throws ParseException {
        //空参构造方法
        Date d=new Date();
        System.out.println(d.toLocaleString());//根据本地格式转换日期对象
        Date d1=new Date(3000L);
        System.out.println(d1.toLocaleString());
        
        //创建日期格式化对象
        //按照指定格式格式化日期对象
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         String format=sdf.format(d);
         System.out.println(format);
         //根据指定格式解析字符串
         String str="2022-02-02 02:02:02";//格式需与SimpleDateFormat一样
         Date parse=sdf.parse(str);
         System.out.println(parse);
    }
}

Calendar类的常用成员方法

 //public int get(int field);返回给定日历字段的值
    //public void set(int field,int value);将给定的日历字段设置为给定值
    //public abstract void add(int field,int amount);根据日历的规则,为给定的日历添加或减去指定的时间量
    //public Date getTime();返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)
    public static void kkk(){
        //使用getInstance方法获取Calendar对象
        Calendar c= Calendar.getInstance();
        c.set(Calendar.YEAR,2022);//自定义设置
        c.set(Calendar.MONTH,4);
        c.set(Calendar.DATE,1);
        c.add(Calendar.YEAR,2);//将年份+2
        c.add(Calendar.YEAR,-3);//将年份-3
        int year=c.get(Calendar.YEAR);//获取年
        System.out.println(year);
        int month=c.get(Calendar.MONTH);//获取月
        System.out.println(month);//西方0-11月,东方1-12月
        //int date=c.get(Calendar.DATE);//月中的某一天 or 日
        int date=c.get(Calendar.DAY_OF_MONTH);//月中的某一天
        System.out.println(date);
        int hour=c.get(Calendar.HOUR);//获取时
        System.out.println(hour);
        int minute=c.get(Calendar.MINUTE);//获取分
        System.out.println(minute);
        int second=c.get(Calendar.SECOND);//获取秒
        System.out.println(second);
    }
    public static void main(String[] args) throws ParseException {
        //使用getInstance方法获取Calendar对象
        Calendar c= Calendar.getInstance();
        kkk();
    }

System类

1.currentTimeMillis()方法

作用:获取当前系统毫秒值时间

2.arraycopy()方法

作用:复制数组

StringBuilder类

1.构造方法

StringBuilder(); 创建一个空的字符串缓冲区对象

StringBuilder(String s); 根据传入的内容创建一个空的字符串缓冲区对象

2.成员方法

StringBuilder append(Object obj); 添加内容

StringBuilder reverse(); 反转内容

String toString(); 将缓冲区转为字符串

定义和使用含有泛型的类

//写为E表示不卡类型(自我理解,有错请指出)
public class General<E> {
    private E name;

    public E getName() {
        return name;
    }

    public void setName(E name) {
        this.name = name;
    }
}
public static void main(String[] args){

      //General g=new General();
      //g.setName("只能是字符串");
      //Object obj = g.getName();
        //类型可以在下面自己定义,E不卡类型
        General<Integer> g1 =new General<>();
        g1.setName(1);
        Integer name=g1.getName();
        System.out.println(name);

        General<String> g2 =new General<>();
        g2.setName("小明");
        String name1=g2.getName();
        System.out.println(name1);

    }
泛型的上限限定:?extends E  
代表使用的泛型只能是E类型的子类/本身
public static void getElement1(Collection<? extends Number>coll){}

泛型的下线限定:?super E 
代表使用的泛型只能是E类型的父类/本身
public static void getElement2(Collection<? super Number>coll){}
Java后端面试备战指南:AI时代下的核心能力提升与场景题破解 这次我们来看一个Java程序员在AI冲击下的面试攻略。这不是一个具体的开源项目,而是一套应对当前技术变革和就业市场的系统性方法。核心目标很直接:帮助Java后端开发者,在AI工具普及、面试要求提高的背景下,更高效地准备面试,提升技术深度,从而找到工作或实现涨薪。 这篇文章的重点不是空谈概念,而是提供一套可落地、可验证的“作战方案”。我们会拆解从Java基础、并发编程、JVM、MySQL到Spring全家桶等核心模块的复习策略,并重点分析如何应对越来越流行的“场景题”和“八股文”结合的新型面试。无论你是应届生 阅读详情

相关推荐

用AI画电路板AI EDA初探Creating WiFi Radio with CELUS: A Step-by-Step Tutorial 使用CELU.IO创建WiFi收音机:分步教程

结论:整体还不太成熟,所选器件单元是欧美思维,器件选型成本和咱们华强北还是无法比。可以关注迭代,看客就当走马观花就行了;不过里面的单元模块还带有AI提问的这个比较好,值得国内EDA从业者学习。话不多说上正文:本教程目的是让我们深入了解如何使用CELUS设计平台构建WiFi收音机实战项目。本指南的重点是使用该平台来选择正确的解决方案,并整合一个项目,让您可以将音乐和节目从互联网直接传输到您自己构建的扬声器。

2301_81235726的博客 1万+

Java基础知识(三)

1、在键盘上输入数据: 1、为了方便灵活的使用参与运算的操作数,java提供了一个工具给我们使用,让我们可以手动输入一些数据。 Scanner(目前来说,只需要掌握如何使用格式即可) 具体操作; 导包; import java.util.Scanner; 创建键盘录入对象; Scanner sc =new Scanner(System.in); 调用方法获取键盘录入的数据(有返回值的) sc.nextInt()//从键盘上获取一个int类型的数据; sc.next()//从键盘上获取

L缶神的博客 2285

cst-python联合仿真的问题解决

cst与python联合仿真出现无法调用CST的问题解决

ayihu_的博客 2374

java语言基础(二)

Java语言基础(逻辑运算符的基本用法) 逻辑运算符有哪些 &(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)注意事项: a:逻辑运算符一般用于连接boolean类型的表达式或者值。 在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6 。 b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。 ...

siriusone的博客 999

飞常准小程序接口逆向分析:如何破解航班查询的签名机制

本文深度解析了飞常准小程序航班查询接口的安全机制,重点剖析了其基于MD5和参数排序的签名算法。通过逆向分析核心代码,详细阐述了签名生成流程,并提供了Python实现的签名生成器与调试技巧,为开发者理解与模拟此类接口调用提供了实战指南。

zz67890的博客 531

#智慧文旅#文创商城管理系统,一站式文旅商品营销管理平台

#智慧文旅#文创商城管理系统满足景区、运营公司或者全域文旅对文创店铺、商品的全流程管理需求,提供文创商品的线上线下产品销售、会员管理、促销管理等服务。包括文创店铺的基本信息管理、文创商品的分类管理、标签管理、上下架管理、库存案例、配送管理等功能。

数字赋能,开启智慧文旅新时代 1176

说说sc.next()、sc.nextInt()和sc.nextLine()

1、next和nextInt以空格或回车换行作为结束 Scanner sc = new Scanner(System.in); System.out.println("请输入你的年龄"); int age = sc.nextInt();//空格或回车作为结束 System.out.println("年龄"+age); 操作结果: 请输入你的年龄 12 34 年龄12 2、n...

qq_43356111的博客 2万+

爬虫瑞数5.5案例:欧冶钢材交易官网,带后缀K5nOZLud(面向对象补环境)

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。由于之前某通信的瑞数已经调整,这里再出一篇文章,瑞数特点以及请求执行的流程已在之前的文章中分析过,这里不再特别讲解;

老衲爱洗头的博客 3043

java的输入输出

Scanner sc = new Scanner(System.in); 1、输入一个整数: int n = sc.nextInt(); 2、 输入字符串(含空格),遇到回车表示一个输入结束 String str = sc.nextLine(); 如果想把这个输入转换成数组,可以使用 String[] str1 = str.split(" “); 双引号里填隔开的符号。 比如输入是 1,2 ,3, 4, 5。 那么 String[] str1 = str.split(” , "); 这样就将输入的字符

YangYoung_的博客 2908

FPGA实现PCIe接口

PCI Express(PCIe)是一种高速串行计算机扩展总线标准,在FPGA中实现PCIe接口可以实现与主机系统的高速数据通信。以下是FPGA实现PCIe接口的关键技术要点。

whm128的博客 1462

VisionPro 机器视觉案例 之 硬币识别

CogPMAlignTool模板匹配工具 掩模

机器视觉李小白的博客 1893

Java基础——String类

Java基础——String类

qq_58390802的博客 1403

[27] cuda 应用之 核函数实现图像通道变换

[27] cuda 应用之 核函数实现图像通道变换

yohnyang的博客 202

Java study 细菌繁殖

Java study 细菌繁殖 代码如下 import java.util.Scanner; public class Main24 { public static void main(String[] args) { Scanner cin = new Scanner(System.in); //System.out.println("请输入行数:"); i...

日拱一卒,功不唐捐 976

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

探索CS-Study:开启你的技术提升之旅!

探索CS-Study:开启你的技术提升之旅! 去发现同类优质开源项目:https://gitcode.com/ 项目简介 CS-Study 是一个由三位开发者共同维护的开源项目,致力于每周进行系统性的计算机科学(CS)学习和算法实践。这个项目不仅提供了清晰的学习计划,还包含了丰富的学习资源,适合所有想要深化技术理解、提升编程技能的人。 通过参与这个项目,你将能够: 每天早上接触到新的CS主题和算...

gitblog_00035的博客 227

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

B站狂神说 study-Spring笔记-每日更新

Study-Spring 1.简介 1.1 拓展 Spring Boot 一个快速开发的脚手架 基于SpringBoot可以快速开发单个微服务 约定打与配置 Spring Cloud 基于SpringBoot实现 大部分公司在进行SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握Spring和SpringMVC。承上启下的作用。 弊端:发展了太久后,违背了以前的理念!配置十分繁琐。人称配置地狱 2.IOC理论推导 ​ 1.UserDao ​ 2.UserDaoI

weixin_44542261的博客 763

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

HF study day06

KT作业06

LuXi-Tu的博客 286

Java零基础到项目实战:完整学习路线与开发环境搭建指南

Java作为面向对象编程语言的核心概念,通过封装、继承、多态三大特性实现代码复用和模块化设计。其原理基于JVM虚拟机实现跨平台运行,具备自动内存管理和丰富的类库支持。在技术价值方面,Java的强类型检查、异常处理机制和集合框架为大型企业级应用提供了稳定基础。应用场景涵盖Web开发、移动应用、大数据处理等多个领域,特别适合零基础学习者通过系统化路线掌握。集合框架作为Java核心技术,包含List、Set、Map等数据结构,为数据存储和操作提供高效解决方案。面向对象编程思想贯穿整个学习过程,从类与对象的定义到继

358

Java零基础入门到项目实战:完整学习路线与开发环境搭建

Java作为面向对象编程语言的核心概念包括类、封装、继承和多态等特性,其原理基于JVM虚拟机实现跨平台运行。在软件开发领域,Java的技术价值体现在企业级应用开发、Android移动开发和大数据处理的广泛适用性。通过集合框架、异常处理等核心机制,Java能够构建稳定可靠的应用系统。在实际应用场景中,从环境搭建到项目实战的完整学习路径尤为重要,特别是对于零基础学习者而言,合理的学习路线规划和每日学习计划能够显著提升学习效率。本文提供的Java学习路线涵盖了从基础语法到框架应用的完整内容,通过学生管理系统等实战

weixin_30843605的博客 556

48、Spark SQL之与Spark Core整合之每日top3热点搜索词统计案例实战

一、概述1、需求分析数据格式: 日期 用户 搜索词 城市 平台 版本 需求: 1、筛选出符合查询条件(城市、平台、版本)的数据 2、统计出每天搜索uv排名前3的搜索词 3、按照每天的top3搜索词的uv搜索总次数,倒序排序 4、将数据保存到hive表中 ###数据 keyword.txt 2018-10-1:leo:water:beijing:android:1.0 2018...

weixin_30830327的博客 210

每日练习

/* * 利用面向对象的方法,设计类Circle计算园的面积 * */ public class TestCircle { public static void main(String[] args) { Circle c1 = new Circle(); //c1.setR(2.0); Sys...

weixin_34013044的博客 183

2026年软考中级——软件设计师备考全攻略:从零基础到一次通关的实战心法

本文提供2026年软考中级软件设计师考试的全面备考指南,涵盖考试结构、核心考点、机考环境适应及高效学习策略。重点解析计算机组成原理、数据结构等五大金刚考点,并分享零基础考生的阶段式学习规划和实战技巧,助力考生一次通关。

weixin_30265103的博客 317

coding-interview-university 面试学习计划快速上手指南

coding-interview-university 是一份为软件工程师面试准备的完整计算机科学学习计划。作者靠这份计划通过了 Amazon 的面试,整个仓库本质上是"待办清单 + 资源链接 + 学习顺序":从上到下逐项完成,学完就能应对大多数软件公司的技术面试。项目是纯文档仓库,不需要安装环境,打开就能学。 ## 这个项目适合谁、解决什么问题 适合这几类人: - 有一点编码基础(会变量、

gitblog_00474的博客 528

零基础Python动画教程:748集从入门到实战完整学习路径

Python作为当前最流行的编程语言,其简洁的语法和丰富的生态使其成为零基础学习者的首选。编程概念通过动画形式直观展示,能够有效降低学习门槛,让抽象的逻辑变得生动易懂。在工程实践中,Python广泛应用于Web开发、数据分析和人工智能等领域,具备很高的技术价值。对于初学者而言,一套完整的动画教程能够系统性地覆盖从基础语法到项目实战的全流程,特别是748集的完整学习路径,确保了知识体系的连贯性和深度。通过环境搭建、函数模块、面向对象编程等核心内容的学习,配合实际代码示例和调试技巧,学习者能够快速掌握Pytho

weixin_30616969的博客 464

Android Study 之 玩转GreenDao 3.2.2 点滴提升逼格~

LZ-Says:撸文不易,且行且珍惜~ 每日一笑:        假如生活欺骗了你,找50个程序员问问为什么编程;        假如生活让你想死,找50个程序员问问Bug改完了没有;        假如你觉得生活拮据,找50个程序员问问工资涨了没有;        假如你觉得活着无聊,找50个程序员问问他们一天都干了什么! 前言端午三天,去天

静心 Study 2210
上一篇: 快手2020校园招聘秋招笔试--工程A试卷
下一篇: 软件工程概论期末考试题
Piink
博客等级 码龄7年 119粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值