文档章节

【JAVA基础知识点总结】JAVA数据类型基础

潭州学院
 潭州学院
发布于 2015/06/05 19:31
字数 1775
阅读 198
收藏 6
点赞 0
评论 0

   《Java基础知识点总结》这一栏目是对自己学JAVA的整个过程一个总结,把这些JAVA基础知识分享出来,给大家参考参考。

本文主讲JAVA数据类型基础,具体如下:

简单数据类型包括: 
  整型(Interger): byte, short, int, long
  浮点类型(Floating): float, double
  字符类型(Textual): char
  布尔类型(Logical): boolean

复合数据类型包括:
  class
  interface
  数组
  String

常量:
  用final. eg: final int NUM = 100;

变量:
  局部变量、类变量、方法参数、例外处理参数

简单数据间的优先数据关系:
  低-->高: byte,short,char->int->long->float->double

自动转换:
  运算中,不同类型数据运算将自动转换,从低级到高级

强制转换:
  高级数据要转换成低级数据,需强制转换
  eg: int i;
  byte b = (byte)i;

运算符:
  基本与c语言一致,实例运算符instanceof, 内存分配运算符new

复合语句:
  基本与c语言一致

例外处理语句:
  包括try, catch, finally, throw

数组:(简单数据类型与复合数据类型的差别)
  一维数组:
    1. 定义
      type intArray[];
      eg: int intArray[];
            Date dateArray[];
    2. 一位数组的初始化
      静态初始化:
        int intArray[] = {1, 2, 3, 4};
        String stringArray[] = {"abc", "How", "You"};
      动态初始化:
        简单类型的数组:
          int intArray[];
          intArray = new int[];
        复合类型的数组:
          String stringArray[];
          String stringArray = new String[3]; // 为数组中每个元素开辟引用
          stringArray[0] = new String("How"); // 开辟空间
          stringArray[1] = new String("are");
          stringArray[2] = new String("you");
    3. 一维数组的引用
      arrayName[index]
      arrayName.length属性指明数组的长度

  多维数组:
    1. 二维数组的定义:
      type arrayName[][];
      type [][]arrayName;
    2. 二维数组的初始化:
      静态初始化
        int intArray[][] = {{1, 2}, {2, 3}, {3, 4, 5}};
        java中, 把二维数组看成时数组的数组, 空间并不是连续的,并不要求每一维的大小相同
      动态初始化
        直接为每一维分配空间:
          arrayName = new type[arrayLength1][arrayLength2];
          int a[][] = new int[2][3];
        从最高维开始,分别为每一维分配空间:
          arrayName = new type[arrayLength1][];
          arrayName[0] = new type[arrayLength20];
          arrayName[1] = new type[arrayLength21];
          ...

          eg: int a[][] = new int[2][];
                a[0] = new int[3];
            a[1] = new int[5];
        二维复合数据类型数组,只能以此种方式
          eg: String s[][] = new String[2][];
            s[0] = new String[2]; // 为最高维分配引用空间
            s[1] = new String[2];
            s[0][0] = new String("Good"); //分配空间
            s[0][1] = new String("Luck");
            s[1][0] = new String("to");
            s[1][1] = new String("You");
    3. 二维数组的引用:
      arrayName[index1][index2]; eg: num[1][2];
    4. 二维数组举例

public class MatrixMultiply

{

  public static void main(String args[]) {

    int i, j, k;

    int a[][] = new int[2][3]; 

    int b[][] = {{1, 5, 2, 8}, {9, 5, 10, -3}, {2, 7, -5, -18}}; 

    int c[][] = new int[2][4]; 

    for (i = 0; i < 2; i++) 

      for (j = 0; j < 3; j++)

        a[i][j] = (i + 1) * (j + 2);

        for (i = 0; i < 2; i++) {

          for (j = 0; j < 4; j++) {

            c[i][j] = 0;

            for (k = 0; k < 3; k++)

              c[i][j] += a[i][k] * b[k][j];

           }

         }

    System.out.println("*********Matrix C***********");

    for (i = 0; i < 2; i++) {

      for (j = 0; j < 4; j++)

        System.out.println(c[i][j] + " ");

      System.out.println();

    }

  }

}

Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。
  1. 字符串常量
    "Hello World"

  2. String表示字符串常量
    String(char chars[]); // 用字符数组初始化String
    String(char chars[], int startIndex, int numChars);
    String(byte ascii[], int hiByte);  // 用字节数组初始化String,hiByte表示高8位,一般为0
    String(byte ascii[], int hiByte, int startIndex, int numChars);

    使用不同方法生成"abc"
    char chars1[] = {'a', 'b', 'c'};
    char chars2[] = {'a', 'b', 'c', 'd', 'e'};
    String s1 = new String(chars1);
    String s2 = new String(chars2, 0, 3); // 取chars2[]的前三个字符

    byte ascii1[] = {97, 98, 99};
    byte ascii2[] = {97, 98, 99, 100, 101};
    String s3 = new String(ascii1, 0);
    String s4 = new String(ascii2, 0, 0, 3); //取前三个

  3. 用StringBuffer表示字符串
    StringBuffer(); // 分配16个字符串的缓冲区
    StringBuffer(int len); // 分配len个字符的缓冲区
    StringBuffer(String s); // 除了按照s的大小分配空间外,再分配16个字符的缓冲区

  4. 访问字符串
    类String提供了length() charAt() indexOf() lastIndexOf() getChars() getBytes() toCharArray()等方法
      public int length() 返回字符串的字符个数
      public char charAt(int index) 返回字符串中index位置上的字符,index范围:0--length-1

      public int indexOf(char ch) 返回字符ch在字符串中出现的第一个位置
      public int lastIndexOf(char ch) 返回字符ch在字符串中出现的最后一个位置

      public int indexOf(String str) 返回子串str在字符串中出现的第一个位置
      public int lastIndexOf(String str) 返回子串str在字符串中出现的最后一个位置

      public int indexOf(char ch, int fromIndex) 返回字符ch在字符串中fromIndex以后出现的第一个位置
      public int lastIndexOf(char ch, int fromIndex) 返回字符ch在字符串中fromIndex以后出现的最后一个位置

      public int indexOf(String str, int fromIndex) 返回子串str在字符串中fromIndex以后出现的第一个位置
      public int lastIndexOf(String str, int fromIndex) 返回子串str在字符串中fromIndex以后出现的最后一个位置

      public void getChars(int srcbegin, int end, char buf[], int dstbegin)
        srcbegin 要提取的第一个字符在源串中的位置
        end 要提取的最后一个字符在源串中的位置
        buf[] 目的字符串
        dstbigin 提取的字符串的在目的字符串中起始位置

      public void getBytes(int srcbegin, int serEnd, byte[] dst, int dstBegin)
      用法同上,只是为8位


    类StringBuffer提供了length() charAt() getChars() capacity()等方法
      capacity()用来得到资环穿缓冲区的容量,与length()方法所返回的值通常是不同的

  5. 修改字符串
    类String提供的方法 contat() replace() substring() toLowerCase() toUpperCase()
      public String contat(string str) 将当前字符串与str连接起来
      public String replace(char oldChar, char newChar); 将当前字符串中oldChar换成newChar

      public String substring(int beginIndex); 返回子串
      public String subString(int beginIndex, int endIndex);

      public String toLowerCase(); 把串中所有字符变成小写
      public String toUpperCase(); 把传中所有字符变成大写

    类StringBuffer提供的方法 append() insert() setCharAt() 
    若操作后的字符已超出分配的缓冲区,系统自动为它分配额外的空间
      public synchronized StringBuffer append(String str); 在当前字符串末尾添加一个字符串str
      public synchronized StringBuffer insert(int offset, String str); 在当前字符串的offset处,插入str
      public synchronized void setChatAt(int index, char ch); 设定指定index处的值

    String和StringBuffer的区别在于:String是对拷贝进行操作,而StringBuffer是直接对字符串操作

  6. 其他操作
    字符串比较
      String中的方法:
        equals()
        equalsIgnoreCase()
      这两个方法与'=='的区别:'=='只关心是否引用同一对象,此两种方法关心对应的字符是否相同

    字符串的转化
      java.lang.Object中提供了方法
        toString() 把对象转化为字符串

    '+'操作


PS:如遇上什么问题,请直接留言或者直接在群457036818提出,谢谢。


© 著作权归作者所有

共有 人打赏支持
潭州学院
粉丝 13
博文 23
码字总数 38387
作品 0
长沙
Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/23 ⋅ 0

【Java并发专题】27篇文章详细总结Java并发基础知识

努力的意义,就是,在以后的日子里,放眼望去全是自己喜欢的人和事! github:https://github.com/CL0610/Java-concurrency,欢迎题issue和Pull request。所有的文档都是自己亲自码的,如果觉...

你听___ ⋅ 05/06 ⋅ 0

书单丨5本Java后端技术书指引你快速进阶

一名Java开发工程师 不仅要对Java语言及特性有深层次的理解 而且需要掌握与Java相关的 框架、生态及后端开发知识 本文涉及多种后端开发需要掌握的技能 对于帮助提高开发能力非常有帮助 NO.1...

Java高级架构 ⋅ 05/30 ⋅ 0

Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874 ⋅ 04/01 ⋅ 0

Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区 ⋅ 05/09 ⋅ 0

安卓开发必备知识体系:Java篇

大家好我是张拭心,自从各位朋友帮点广X开始,我发现我每天更有奔头了,走起路来也更有劲了,说啥也得更新的勤快一点。不过放心,我一定推送有价值的内容给大家,还请朋友们照旧动动手指点点...

d29h1jqy3akvx ⋅ 05/10 ⋅ 0

你所需要的java提升篇大总结

java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序的深入解析 java基础(五) Str...

sihailoveyan ⋅ 04/25 ⋅ 0

阿里年薪50WJAVA工程师转大数据学习路线!

大数据有两个方向,一个是偏计算机的,另一个是偏经济的。你学过Java,所以你可以偏将计算机的。 Java程序员想转大数据可行吗?Java是全世界使用人数最多的编程语言。不少程序员选择Java做为...

JAVA丶学习 ⋅ 04/25 ⋅ 0

2018年java编程语言经典基础知识总结学习

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/21 ⋅ 0

作为一名java程序员你的薪资为什么上不去?

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。 很多人在问我,...

java高级架构牛人 ⋅ 05/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部