精华内容
下载资源
问答
  • 开头 该文档在Github上收获5K+star的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面,包含基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、...

    开头

    该文档在Github上收获5K+star的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面,包含基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等内容非常丰富,已经帮很多人拿下互联网一线公司的offer。

    关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!

    好好吃透消化,让你面试跳槽不再心慌!

    由于细节内容实在过多所以只编辑了部分知识点的章节粗略的介绍下,每个章节小节点里面都有更细化的内容!以下就是章节目录,由于头条的篇幅限制目录上的详细讲解也无法一一列出,文末底下有获取以下章节的所有详细知识讲解。

    1.美团面试官问的Spring Boot问题

    1. 什么是 Spring Boot?
    2. 为什么要用 Spring Boot?
    3. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
    4. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
    5. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
    6. 开启 Spring Boot 特性有哪几种方式?
    7. Spring Boot 需要独立的容器运行吗?
    8. 运行 Spring Boot 有哪几种方式?
    9. Spring Boot 自动配置原理是什么?
    10. Spring Boot 的目录结构是怎样的?

    1.1我的Spring Boot学习笔记

    1. Spring Boot、Spring MVC 和 Spring 有什么区别?
    2. 什么是自动配置?
    3. 什么是 Spring Boot Stater ?
    4. 你能否举一个例子来解释更多 Staters 的内容?
    5. Spring Boot 还提供了其它的哪些 Starter Project Options?
    6. Spring 是如何快速创建产品就绪应用程序的?
    7. 创建一个 Spring Boot Project 的最简单的方法是什么?
    8. Spring Initializr 是创建 Spring Boot Projects 的唯一
    9. 为什么我们需要 spring-boot-maven-plugin?
    10. 如何使用 SpringBoot 自动重装我的应用程序?
    11. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
    12. 如何在 Spring Boot 中添加通用的 JS 代码?

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    1.2Spring学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    2.美团面试官问的RabbitMQ问题

    1. 使用RabbitMQ有什么好处?
    2. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
    3. RabbitMQ 概念里的 channel、exchange 和 queue 是逻辑概念,还是对应着进程实体?分别起什么作用?
    4. vhost 是什么?起什么作用?
    5. 消息基于什么传输?
    6. 消息如何分发?
    7. 消息怎么路由?
    8. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?

    2.1我的RabbitMQ学习笔记

    1. 什么是rabbitmq
    2. 为什么要使用rabbitmq
    3. 使用rabbitmq的场景
    4. 如何确保消息正确地发送至RabbitMQ? 如何确保消息接收方消费了消息?
    5. 如何避免消息重复投递或重复消费?
    6. 消息基于什么传输?
    7. 消息如何分发?
    8. 消息怎么路由?
    9. 如何确保消息不丢失?
    10. 使用RabbitMQ有什么好处?
    11. rabbitmq的集群
    12. mq的缺点

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    3.美团面试官问的MySQL问题

    1. 事务四大特性
    2. MySQL的事务隔离级别
    3. 数据库的索引
    4. 数据库三范式
    5. 脏读&不可重复读&幻读
    6. 存储引擎 MyISAM和InnoDB区别
    7. Mysql中有哪几种锁?
    8. 讲一下存储过程

    3.1我的MySQL灵魂拷问笔记

    1. Mysql的技术特点是什么?
    2. Heap表是什么?
    3. Mysql服务器默认端口是什么?
    4. 与Oracle相比,Mysql有什么优势?
    5. 如何区分FLOAT和DOUBLE?
    6. 如何获取当前的Mysql版本?
    7. Mysql中使用什么存储引擎?
    8. Mysql驱动程序是什么?
    9. 主键和候选键有什么区别?
    10. 如何使用Unix shell登录Mysql?
    11. 你怎么看到为表格定义的所有索引?
    12. InnoDB是什么?

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    3.2MySQL学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    4.美团面试官问的设计模式问题

    1. 请列举出在JDK中几个常用的设计模式?
    2. 什么是设计模式?你是否在你的代码里面使用过任何设计模式?
    3. Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式
    4. 在 Java 中,什么叫观察者设计模式(observer design pattern)?
    5. 使用工厂模式最主要的好处是什么?在哪里使用?
    6. 举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
    7. 在 Java 中,为什么不允许从静态方法中访问非静态变量?
    8. 例说明什么情况下会更倾向于使用抽象类而不是接口?

    4.1 23种设计模式知识要点

    1. 单例模式
    2. 工厂模式
    3. 抽象工厂模式
    4. 模板方法模式
    5. 建造者模式
    6. 代理模式
    7. 原型模式
    8. 中介者模式
    9. 命令模式
    10. 责任链模式

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    4.2设计模式学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    5.美团面试官问的并发编程问题

    1. Java中有几种方法可以实现一个线程?
    2. 如何停止一个正在运行的线程?
    3. 什么是Daemon线程?它有什么意义?
    4. ava如何实现多线程之间的通讯和协作?
    5. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
    6. 什么是可重入锁(ReentrantLock)?
    7. 什么叫线程安全?servlet是线程安全吗?
    8. 同步有几种实现方法?

    5.1并发编程面试专题

    1. Java中守护线程和本地线程区别
    2. 什么是多线程中的上下文切换
    3. 死锁与活锁的区别,死锁与饥饿的区别
    4. 线程与进程的区别
    5. Java中用到的线程调度算法是什么
    6. 什么是线程组,为什么在Java中不推荐使用
    7. 在Java中Executor和Executors的区别
    8. 什么是原子操作,在Java Concurrency API中有哪些原子类(atomic classes)
    9. 什么是Executors框架
    10. 什么是阻塞队列,阻塞队列的实现原理是什么,如何使用阻塞队列来实现生产者-消费者模型

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    5.2并发编程学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    6.美团面试官问的JVM虚拟机问题

    1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
    2. 什么是类的加载
    3. 描述一下JVM加载class文件的原理机制?
    4. 如何判断对象可以被回收?
    5. 什么时候一个对象会被GC?
    6. 为什么要在这种时候对象才会被GC?
    7. JVM内存分为哪几部分,这些部分分别都存储哪些数据?
    8. 一个对象从创建到销毁都是怎么在这些部分里存活和转移的?

    6.1JVM虚拟机面试专题

    1. Java 类加载过程?
    2. 描述一下 JVM 加载 Class 文件的原理机制?
    3. Java 内存分配。
    4. GC 是什么? 为什么要有 GC?
    5. 简述 Java 垃圾回收机制。
    6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
    7. 垃圾回收的优点和原理。并考虑 2 种回收机制。
    8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
    9. Java 中会存在内存泄漏吗,请简单描述。
    10. 深拷贝和浅拷贝

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    6.2 JVM虚拟机学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    7.美团面试官问的Redis问题

    1. 什么是Redis?简述它的优缺点?
    2. Redis相比memcached有哪些优势?
    3. Redis支持哪几种数据类型?
    4. Redis主要消耗什么物理资源?
    5. Redis的全称是什么?
    6. Redis有哪几种数据淘汰策略?
    7. Redis官方为什么不提供Windows版本?
    8. Redis集群方案应该怎么做?都有哪些方案?
    9. 为什么Redis需要把所有数据放到内存中?
    10. Redis有哪些适合的场景?

    7.1 Redis面试专题

    1. 为什么要用 redis /为什么要用缓存
    2. 为什么要用 redis 而不用 map/guava 做缓存?
    3. redis 和 memcached 的区别
    4. redis 常见数据结构以及使用场景分析
    5. redis 设置过期时间
    6. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
    7. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
    8. redis 事务
    9. Redis 常见异常及解决方案
    10. 分布式环境下常见的应用场景

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    7.2 Redis学习路线思维导图

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    8. 我的参考学习资料:Java核心知识点整理

    JVM,集合,HTTP网络,多线程并发,JAVA基础,Spring,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,消息中间件,MongoDB,设计模式,负载均衡,数据库,一致性哈希,算法,数据结构,加密算法,分布式缓存,Netty,Linux,Tomcat,Nginx,Redis等

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    9. 各类学习书籍整理

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    10. 各类面试题整理

    美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)

    最后

    我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

    资料领取方式:戳这里免费下载

    新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

    还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

    新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

    Java面试题集合,附带超详细答案,希望能帮助到大家。**

    资料领取方式:戳这里免费下载

    [外链图片转存中…(img-lRbIhJSI-1621594079150)]

    还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

    [外链图片转存中…(img-W8ZDwJpo-1621594079151)]

    展开全文
  • JAVA——实现随机给数组赋值

    千次阅读 2019-11-14 14:25:28
    定义一个长度为3的一维数组,每个元素赋值. (要求数组中每个元素的值是0-9的随机数) 遍历数组打印每个元素的值 代码如下: public static void main(String[] args) { int[] arr = new int[3]; Random r =...

    题目:

        定义一个长度为3的一维数组,给每个元素赋值. (要求数组中每个元素的值是0-9的随机数)
        遍历数组打印每个元素的值

    代码如下:

    public static void main(String[] args) {
    		int[] arr = new int[3];
    		Random r = new Random();
    		for(int i = 0;i < arr.length;i++){
    			arr[i] = r.nextInt(10);
    			System.out.println(arr[i]);
    		}
    	}
    	

    输出结果如下:

    4
    5
    8

     

    展开全文
  • 字符数组赋值的方法

    千次阅读 2018-11-29 16:19:24
    字符数组赋值的方法 2018年07月06日 15:15:07 kkwant 阅读数:29 标签: 赋值方法语言编译器string字符数组存储 原文地址为:字符数组赋值的方法 main()  {  char s[30];  strcpy(s, "Good News!...

    给字符数组赋值的方法

    2018年07月06日 15:15:07 kkwant 阅读数:29 标签: 赋值方法语言编译器string字符数组存储

    原文地址为:给字符数组赋值的方法

    main() 

    char s[30]; 
    strcpy(s, "Good News!"); /*给数组赋字符串*/ 




    上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留 
    出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为 
    Turbo C2.0的函数)时, 首先在目标文件的某处建立一个"Good News!/0" 的字符串。 
    其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地复 
    制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的 
    长度多1。 
    注意: 
    1. 字符串数组不能用"="直接赋值, 即s="Good News!"是不合法的。所以应分 
    清字符串数组和字符串指针的不同赋值方法。 
    2. 对于长字符串, Turbo C2.0允许使用下述方法: 
    例如: 
    main() 

    char s[100]; 
    strcpy(s, "The writer would like to thank you for" 
    "your interest in his book. He hopes you" 
    "can get some helps from the book."); 



    }


    指针数组赋值
     


    例如: 
    main() 

    char *f[2]; 
    int *a[2]; 
    f[0]="thank you"; /*给字符型数组指针变量赋值*/ 
    f[1]="Good Morning"; 
    *a[0]=1, *a[1]=-11; /*给整型数数组指针变量赋值*/ 



    }

     

    ------------------------------------------------------------------------------------------------------------------

    补充:

    无论是静态,局部还是全局数组只有在定义时才能初始话,否则必须通过其它方法,比如循环操作实现。

    任何
    int a[3];
    static int b[3];
    a[3] = {1, 2, 3};
    b[3] = {1, 2, 3};
    没有在定义时初始化都是错误的!

    -------------------------------------------------------------------------------------------------------------------

    以下是转载: 
    学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心。

    char a[10];
    怎么给这个数组赋值呢?
    1、定义的时候直接用字符串赋值
    char a[10]="hello";
    注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
    2、对数组中字符逐个赋值
    char a[10]={'h','e','l','l','o'};
    3、利用strcpy
    char a[10]; strcpy(a, "hello");

    易错情况:
    1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
    2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!

    还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。


    C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。


    直接尝试对字符串进行复制或比较操作会失败。例如,假定str1和str2有如下声明:

    char str1[10], str2[10];

    利用=运算符来把字符串复制到字符数组中是不可能的:

    str1 = "abc";     /*** WRONG ***/

    str2 = str1;       /*** WRONG ***/

    C语言把这些语句解释为一个指针与另一个指针之间的(非法的)赋值运算。但是,使用=初始化字符数组是合法的:

    char str1[10] = "abc";

    这是因为在声明中,=不是赋值运算符。

    试图使用关系运算符或判等运算符来比较字符串是合法的,但不会产生预期的结果:

    if (str1==str2) ...    /*** WRONG ***/

    这条语句把str1和str2作为指针来进行比较,而不是比较两个数组的内容。因为str1和str2有不同的地址,所以表达式str1 == str2的值一定为0。

     

     

    -------------------------------------------------------------------------------------------------------------------------------------

    有空再查下动态数组的定义使用:

    数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。
    动态数组就可以在任何时候改变大小。

     

    通俗的说静态数组就是在定义数组的时候,由操作系统分配的空间,比如
    int a[10];
    这就是在定义时由系统给你分配了10个int类型的空间,这个空间是可以初始化的,比如
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    那么在这个定义之后,系统会首先分配10个int类型的存储空间,然后把大括号里面的数字分别的,按顺序放到这10个空间里。你所做的只是写这么一句,而数组赋值的操作就由系统完成了。当然,初始化与否看你的需求,初始化不是强制性操作,想初始化就初始化,不想也没问题,还是上面的例子继续:
    int a[10];
    这里定义了,但是没初始化,这没有任何问题,以后你可以自己往里面赋值,比如
    a[1] = 8;
    a[5] = 3;
    或者
    for(int i = 0; i < 10; i++)
        a[i] = i;
    等等

    对于动态数组,不能被初始化,因为动态数组在定义时只是个指针,比如
    int *a;
    这里变量a只是个指向int类型的指针,而不是数组。动态分配有10个int类型元素的数组,如下:
    a = (int) malloc(10*sizeof(int));
    很明显,指针a在定义的时候不能被初始化,比如这样写就是错误的:
    int *a = {1,2,3,4,5,6,7,8,9,10}; /* 错误! */
    因为a是只有4个字节的指针,没有可用的存储空间给需要初始化的变量。

    ----------------------------------------------------------------------------------------------------------------------------------------------------

     

     

    第三节  初始化数组

    1.数组的初始化

      数组可以初始化,即在定义时,使它包含程序马上能使用的值。
      例如,下面的代码定义了一个全局数组,并用一组Fibonacci数初始化:
        int iArray[10]={1,1,2,3,5,8,13,21,34,55); //初始化
        void main()
        {
          //...
        }
      初始化数组的值的个数不能多于数组元素个数,初始化数组的值也不能通过跳过逗号的方式来省略,这在C中是允许的,但在C++中不允许。
      例如,下面的代码对数组进行初始化是错误的:
        int arrayl[5]={1,2,3,4,5,6}; //error: 初始化值个数多于数组元素个数
        int array2[5]={1,,2,3,4}; //error:初始化值不能省略
        int array3[5]={1,2,3,}; //error:初始化值不能省略
        int array4[5]={}; //error:语法格式错误
        void main()
        {
          //...
        }
      初始化值的个数可少于数组元素个数。当初始化值的个数少于数组元素个数时,前面的按序初始化相应值, 后面的初始化为0(全局或静态数组)或为不确定值(局部数组)。
      例如,下面的程序对数组进行初始化:
        //*********************
        //**   ch7_2.cpp  **
        //*********************

        #include <iostream.h>

        int array1[5]={1,2,3};
        static int array2[5]={1};

        void main()
        {
         int arr1[5]={2};
         static int arr2[5]={1,2};

         int n;
         cout <<"global:/n";
         for(n=0; n<5; n++)
           cout <<" " <<array1[n];

         cout <<"/nglobal static:/n";
         for(n=0; n<5; n++)
           cout <<" " <<array2[n];

         cout <<"/nlocal:/n";
         for(n=0; n<5; n++)
           cout <<" " <<arr1[n];

         cout <<"/nlocal static:/n";
         for(n=0; n<5; n++)
            cout <<" " <<arr2[n];
         cout <<endl;
        }

      运行结果为:
        global:
         l  2  3  0  0
        global static:

         1  0  0  0  0
        local:
         2 23567 23567 23567 23567
        local static:
         1  2  0  0  0
      例中,全局数组和全局静态数组的初始化是在主函数运行之前完成的,而局部数组和局部静态数组的初始化是在进入主函数后完成的。
      全局数组arrayl[5]对于初始化表的值按序初始化为1,2,3,还有两个元素的值则按默认初始化为0。
      全局静态数组array2[5]与全局数组的初始化情况一样,初始化表值(1)表示第1个元素的值,而不是指全部数组元素都为1。
      局部数组arrl[5]根据初始化表值的内容按序初始化, 由于初始化表值只有1个,所以还有4个元素的值为不确定。在这里均为数值23567。
      局部静态数组arr2[5]先根据初始化表按序初始化,其余3个数组元素的值默认初始化为0。

    2.初始化字符数组

      初始化字符数组有两种方法,一种是:
        char array[10]={"hello"};
      另一种是:
        char array[10]={'h','e','l','l','/0'};
      第一种方法用途较广,初始化时,系统自动在数组没有填值的位置用,'/0'补上。另外, 这种方法中的花括号可以省略,即能表示成:
        char array[10]="hello";
      第二种方法一次一个元素地初始化数组,如同初始化整型数组。这种方法通常用于输入不容易在键盘上生成的那些不可见字符。
      例如,下面的代码中初始化值为若干制表符:
        char chArray[5]={'/t','/t','/t','/t','/0');
      这里不要忘记为最后的,'/0'分配空间。如果要初始化一个字符串"hello",那为它定义的数组至少有6个数组元素。
      例如,下面的代码给数组初始化,但会引起不可预料的错误:
        char array[5]="hello";
      该代码不会引起编译错误,但由于改写了数组空间以外的内存单元,所以是危险的。

    3.省略数组大小

      有初始化的数组定义可以省略方括号中的数组大小。
      例如,下面的代码中数组定义为5个元素:
        int a[]={2,4,6,8,10};
      编译时必须知道数组的大小。通常,声明数组时方括号内的数字决定了数组的大小。有初始化的数组定义又省略方括号中的数组大小时,编译器统计花括号之间的元素个数,以求出数组的大小。
      例如,下面的代码产生相同的结果:
        static int a1[5]={1,2,3,4,5};
        static int a2[]={1,2,3,4,5};
      让编译器得出初始化数组的大小有几个好处。它常常用于初始化一个元素个数在初始化中确定的数组,提供程序员修改元素个数的机会。
      在没有规定数组大小的情况下,怎么知道数组的大小呢? sizeof操作解决了该问题。 例如,下面的代码用sizeof确定数组的大小:

        //*********************
        //** ch7_3.cpp **
        //*********************

        #include <iostream.h>

        void main()
        {
         static int a[]={1,2,4,8,16};
         for(int i=0; i<(sizeof(a)/sizeof(int)); i++)
          cout <<a[i] <<" ";
         cout <<endl;
        }

      运行结果为:
        1 2 4 8 16
      sizeof操作使for循环自动调整次数。如果要从初始化a数组的集合中增删元素,只需重新编译即可,其他内容无须更动。
      每个数组所占的存储量都可以用sizeof操作来确定! sizeof返回指定项的字节数。sizeof常用于数组,使代码可在16位机器和32位机器之间移植:
      对于字符串的初始化,要注意数组实际分配的空间大小是字符串中字符个数加上末尾的,'/0',结束符。
      例如,下面的代码定义一个字符数组:

        //*********************
        //**   ch7_4.cpp  **
        //*********************

        #include <iostream.h>

        void main()
        {
         char ch[]="how are you";

         cout <<"size of array: " <<sizeof(ch) <<endl;
         cout <<"size of string: " <<strlen("how are you")            <<endl;
        }

      运行结果为:
        size of array:12
        size of string:ll
      例中,数组大小为12,而字符串长度为11。
      省略数组大小只能在有初始化的数组定义中。
      例如,下面的代码将产生一个编译错误:
        int a[];//error:没有确定数组大小
      在定义数组的场合,无论如何,编译器必须知道数组的大小。

     


    转载请注明本文地址:给字符数组赋值的方法

    展开全文
  • 从键盘给数组arr[]元素进行赋值,并求数组内元素的累加和 创建一个int型数组数组名为arr ,数组长度为7, int[] arr=new int[7]; 从键盘录入数据,给数组arr[]进行赋值 Scanner sc= new Scanner(System.in); ...

    从键盘给数组arr[]元素进行赋值,并求数组内元素的累加和

    创建一个int型数组,数组名为arr ,数组长度为7,

    
    int[] arr=new int[7];
    
    

    从键盘录入数据,给数组arr[]进行赋值

    Scanner sc= new Scanner(System.in);
    for(int n=0;n<arr.length;n++){
    	System.out.println("请输入第"+(n+1)+"个元素");
    	arr[n]=sc.nextInt();//给数组元素角标赋值
    }
    System.out.println("arr[]中的元素为:");
    	for(int n=0;n<arr.length;n++){
    	System.out.print(arr[n]+",");//分别打印数组中的元素
    	}
    		
    	
    

    求数组arr[]中元素的累加和

    int sum=o;
    for(int n=0;n<arr.length;n++){
    	sum+=arr[n];
    	}
    	System.out.println();//换一行输出
    	System.out.println("arr[]数组中的元素累加和为"+sum);
    	
    
    

    完整代码

            int[] arr=new int[7];
    		//定义一个int类型得arr数组 数组长度为7
    		Scanner sc=new Scanner(System.in);
    		//从键盘输入数据,为数组元素
    		for(int n=0;n<arr.length;n++) {
    			System.out.println("请输入第"+(n+1)+"个元素:");
    			arr[n]=sc.nextInt();//给数组元素角标赋值
    		}
    		System.out.println("arr[]数组中的元素为");
    		for(int n=0;n<arr.length;n++){
    			
    			System.out.print(arr[n]+",");//分别打印数组中的元素
    			
    		}
    		//求数组中的累加和
    		int sum=0;
    		for(int n=0;n<arr.length;n++) {
    			sum+=arr[n];
    		}
    		System.out.println();//换一行输出
    		System.out.println("数组元素的累加和为:"+sum);
    		
    			
    
    展开全文
  • 从键盘给数组录入数据,并求数组中的最大值 ...从键盘给arr数组中的元素进行赋值 Scanner sc= new Scanner(System.in); for(int n=0;n<arr.length;n++){ System.out.pritln("请输入第"+n+"个元素"); arr...
  • (1)定义一个长度为10的int类型数组arr,使用随机数为数组循环赋值,随机数范围为[10,99] (2) 提示用户键盘录入一个1-5之间(包含1和5,无需用代码判断,提示语即可)的整数num (3) 遍历arr,如果元素的十位或者个位...
  • 之前写代码的时候发现一条程序无论如何跑不通,明明逻辑都是对的,最终发现问题。 var a=[1,2]; var b=a; b.splice(1,0); console.log(a);...单纯为了复制数组应该使用slice函数,新数组不会对原数组产生影响。
  • 分类: C 2012-04-06 10:23 4081...怎么这个数组赋值呢? 1、定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再它赋值,如char a[10]; a[10]="hello";这样是错误的...
  • 冒泡排序的两种循环写法 第一种 for (int i = 1; i <= a.length - 1; i++) { for (int j = 0; j <= a.length - 1 - i; j++) { ...package day06数组; public class 大到小冒泡 { public st
  • //通过键盘给一个数组赋值,然后反序输出的程序,除了我这种原数组不变,将值反序赋另一个数组,即a[5]={1 1 3 4 5} 程序执行后 b[5]={5 4 3 1 1} #include <iostream> #include <stdlib.h> using ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,851
精华内容 18,740
关键字:

从键盘给数组赋值