原来你是这样的Java[01]--基础一瞥

这篇具有很好参考价值的文章主要介绍了原来你是这样的Java[01]--基础一瞥。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Java是什么呢?

Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。 更主要是JAVA已经具有强大的生态,使它具有了鲜活的生命力。

2.JDK 和 JRE 是什么?

  • JDK:全称是 Java Development Kit,这是我们编写java程序的开发人员需要的。我们首先要下载和安装JDK,然后设置环境变量,具体操作可以参考这篇文章: JAVA入门[1]--安装JDK。
  • JRE:全称是 Java Runtime Environment,它包含虚拟机但不包含编译器,这是运行java程序的用户需要的环境。

3.来个Hello World看看吧?

照例先创建一个类HelloWorld.java,源代码如下:

/**
  * @author 陈敬
  * @date 17/12/23
  */
public class HelloWorld {
     public static void main(String[] args){
         System.out.println("Hello World");
     }
}

Java类名一般是以大写字母开头的名词,多个单词的话每个单词首字母都应该大写。Java源代码以.java作为扩展名,而且文件名必须和文件里的公共类同名。

* IDEA中快捷键: psvm。它可以快速生成以上main方法。

4.怎么用命令行运行java程序?

比如上面我们编写了一个类叫做HelloWorld.java,

  • 首先打开一个终端;
  • 然后进入到HelloWorld.java类所在的目录;
  • 输入命令 javac HelloWorld.java 。javac是一个java编译器,注意该命令需要的是文件名,也就是要带着.java后缀。
  • 输入命令 java HelloWorld 。java启动Java虚拟机,该命令只需要类名,不需要带着.java或者.class等后缀。

5.Java代码怎么加注释?

// 单行注释 和 /*{……}*/ 长篇注释,这两种方式很多语言都一样,没什么特别强调的。

另外还有一种注释可以方便的生成java doc文档, 以/* 开头,以*/结束*。比如 3 中Hello World示例代码开头的注释就是这种方式。

6.Java的几种基本数据类型是?

  • 4种整型:byte(1字节) ,short(2字节),int(4字节),long(8字节)。(PS:Java没有无符号整型)
  • 2种浮点型:float(4字节),double(8字节)
  • 字符类型:char(2字节)
  • 布尔类型:boolean(1字节)

在Java种每个类型占用几个字节是固定的,与运行java的机器无关,这点与C#不同,这也是Java具有可移植性的关键点。

浮点类型一般double比float常用,而且浮点型存在四舍五入的情况,如果用在对精确度要求高的商业场景,就得使用java.math.BigDecimal类型了。我们写个demo看看:

/**
  * @author 陈敬
  * @date 17/12/23
  */
public class DemoDouble {
     public static void main(String[] args) {
         double d1=0.05;
         double d2=0.01;
         double result=d1+d2;
         System.out.println(result);//结果:0.060000000000000005

        BigDecimal bd1=new BigDecimal("0.05");
         BigDecimal bd2=new BigDecimal(Double.valueOf("0.01"));
         double result2=bd1.add(bd2).doubleValue();
         System.out.println(result2);//结果:0.06
     }
}

7.Java怎么定义常量?

使用关键字 final 定义常量,之前C#用的是const关键字,这一点不同要注意一下。命名规则上,常量一般使用大写字母,中间用下划线分隔。例如:

private static final Integer MAX_SIZE=100;

8.String字符串怎么截取子串?

Substring(beginIndex,endIndex):返回子字符串,从beginIndex到endIndex-1。

//子串
String s="你好,今天是2017年12月24日,圣诞快乐!!";
String date=s.substring(6,17);
System.out.println(date);//输出:2017年12月24日

注意:该方法的返回结果不包含最后一个位置的字符。

9.Java字符串怎么拼接?

①最简单的拼接方式就是使用+符号。

②String.join(char,str1,str2….strN):静态方法拼接字符串,用字符char分隔,将字符串进行拼接。

//拼接
String s2=String.join("、","JAVA核心技术","JAVA编程思想","SpringBoot");
System.out.println(s2);//输出:JAVA核心技术、JAVA编程思想、SpringBoot

* IDEA快捷键推荐: sout,快速生成 System.out.println()方法。

③当有大量字符串拼接操作的时候使用StringBuilder,这跟C#基本相同。

10.怎么判断两个Java字符串是否相等?

equals方法判断两个字符串内容是否相等。而==判断两个字符串是否指向内存中同一位置。

//比较
String s3="abc";
String s4="abc";
String s5=new String("abc");
String s6=new String("abc");
System.out.println(s3==s4);//true
System.out.println(s3.equals(s4));//true
System.out.println(s5==s6);//false
System.out.println(s5.equals(s6));//true

这个demo中s3==s4返回true,因为在Java中字符串是不可修改的,编译器有一些优化机制让字符串共享,所以s3和s4实际上指向了内存中同一位置。

11.Java数组有哪些常用操作?

①foreach循环数组

//foreach循环数组
int[] arr={1,3,5,7,9};
for(int item:arr){
     System.out.println(item);
}

②打印数组元素

Arrays.toString(a) :返回字符串,数组元素包含在方括号中,以逗号分隔。

Arrays.deepToString(arr):用来打印多维数组。

//打印数组
System.out.println(Arrays.toString(arr));//输出 [1, 3, 5, 7, 9]
int[][] arrM={{1,2,3},{11,12,13},{21,22,23}};
System.out.println(Arrays.deepToString(arrM));//[[1, 2, 3], [11, 12, 13], [21, 22, 23]]

③拷贝数组元素

静态方法 Arrays.copyOf (originalArray,length):第一个参数是要拷贝的源数组,第二个元素是新数组的长度,如果第二个大于原数组长度,则自动填充默认值。

//拷贝数组元素
int[] arr2=Arrays.copyOf(arr,arr.length);
System.out.println(Arrays.toString(arr2));//输出   [1, 3, 5, 7, 9]
int[] arr3=Arrays.copyOf(arr,arr.length/2);
System.out.println(Arrays.toString(arr3));//输出 [1, 3]
int[] arr4=Arrays.copyOf(arr,arr.length*2);
System.out.println(Arrays.toString(arr4));//输出 [1, 3, 5, 7, 9, 0, 0, 0, 0, 0]

④排序

静态方法 Arrays.sort() 方法采用优化后的快速排序算法对数组元素进行排序。

//排序
int[] arr6={12,4,53,78,21,943,3};
Arrays.sort(arr6);
System.out.println(Arrays.toString(arr6));//输出 [3, 4, 12, 21, 53, 78, 943]

⑤查找

静态方法 Arrays.binarySearch(arr, valueToFind):二分查找,第一个参数是要查找的数组,第二个参数是要查找的目标元素。该方法有个前提是 数组必须是有序的

//查找
int index=Arrays.binarySearch(arr6,12);//输出 2
System.out.println(index);

⑥填充数组元素

静态方法 Arrays.fill(arr,item):将数组arr每个元素都填充为item.

//填充数组元素
String[] arr7=new String[5];
Arrays.fill(arr7,"*");
System.out.println(Arrays.toString(arr7));//[*, *, *, *, *]

⑦比较数组

注意要使用 Arrays.equals (arr1,arr2) 比较数组,如果两个数组元素全部相同,则返回true。

//比较数组元素
String[] arr8={"*","*","*","*","*",};
System.out.println(arr7.equals(arr8));//false
System.out.println(Arrays.equals(arr7,arr8));//true

12.日期对象LocalDate

①获取当前日期时间

//当前日期
        LocalDate today=LocalDate.now();
        System.out.println(today);//2017-12-26
        //当前时间
        LocalTime currentTime=LocalTime.now();
        System.out.println(currentTime);//12:23:09.054
        //当前日期时间
        LocalDateTime dateTime=LocalDateTime.now();
        System.out.println(dateTime);//2017-12-26T12:23:09.054

②构造某个指定日期

//构造指定日期
LocalDate newYear=LocalDate.of(2018,1,1);
System.out.println(newYear);//2018-01-01

③解析日期字符串,如果不合法会抛出异常。

 //解析日期字符串
LocalDate date1=LocalDate.parse("2018-12-31");
System.out.println(date1);//2018-12-31
//LocalDate.parse("2018-11-31");//抛出异常

④获取若干天后的某个日期

//15天后
LocalDate date15=today.plusDays(15);
System.out.println(date15);//2018-01-10

⑤获取年份、月份、日期

 //获取年、月、日
 System.out.println(date15.getYear());//2018
System.out.println(date15.getMonth());//JANUARY
System.out.println(date15.getMonthValue());//1
System.out.println(date15.getDayOfMonth());//10
System.out.println(date15.getDayOfWeek());//WEDNESDAY
System.out.println(date15.getDayOfYear());//10

注意:使用Date对象的getYear()方法,不能获取当前的年份

System.out.println(new Date().getYear());//117,不是我们想要的结果2017

我们看一下该方法的源码,计算的是当前年份和1900年的差值。

public int getYear() {
      return normalize().getYear() - 1900;
}

练习:关于日期,可以做一个有趣的小练习,就是打印当前月份的日历
原来你是这样的Java[01]--基础一瞥


本人公众号[ 敬YES ]同步更新,欢迎大家关注~

原来你是这样的Java[01]--基础一瞥文章来源地址https://www.toymoban.com/news/detail-673924.html

到了这里,关于原来你是这样的Java[01]--基础一瞥的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 双向链表原来是这样实现的!

    “我会定期分享我的学习经验,也欢迎大家留言和交流,让我们共同学习和进步!感谢大家的支持,让我们一起开启这段充满技术乐趣的旅程吧!” 数据结构在计算机科学中扮演着关键角色,其中双链表作为一种强大的动态数据结构在实际编程中发挥着重要作用。在本文中,

    2024年02月04日
    浏览(46)
  • 今天才知道原来它是这样的HTTP

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP三点注意事项 客户端发送一个HTTP请求到服务器的请求

    2024年01月16日
    浏览(39)
  • Python实现京东茅台抢购脚本, 原来这样就可以了?

    京东茅台抢购脚本可以分为以下几部分,具体实现步骤如下: 登录京东账号 首先需要登录京东账号。一个简单的方式是使用Python的 selenium 库。在使用 selenium 库前,需要安装 selenium 库和对应的浏览器驱动。 示例代码如下所示: 注意:在使用 selenium 的时候,要配置对应的浏

    2024年02月14日
    浏览(74)
  • 一文读懂JavaWeb,前后端数据交互原来是这样的

    Request的请求体中负载着前端向后端发送请求的数据; Response的响应体中负载着后端向前端返回响应的数据; 当然,Request的请求行中的URL中也可以负载着前端向后端发送请求的数据,这个后面会详细说明。 Request模型 Request实例 Repsonse模型 Response实例 JSON字符串就是符合JSON语法

    2024年02月08日
    浏览(80)
  • C语言初学者:原来分支和循环语句可以这样简单!

    目录 1.分支语句 1.if 语句 2.else语句 3.嵌套if  4.悬空else的问题 5.Switch语句 2.循环语句  1.while循环 2.for循环 3do-while循环 3.break和continue语句 1.break语句 2.continue语句 4.goto语句  5.小结 6.为你们点赞呢~ 7.完结散花                            不是每个人都能做自己想做的事,成

    2024年04月12日
    浏览(46)
  • 深入理解 python 虚拟机:字节码教程(1)——原来装饰器是这样实现的

    在本篇文章当中主要给大家介绍在 cpython 当中一些比较常见的字节码,从根本上理解 python 程序的执行。在本文当中主要介绍一些 python 基本操作的字节码,并且将从字节码的角度分析函数装饰器的原理! 这个指令用于将一个常量加载到栈中。常量可以是数字、字符串、元组

    2023年04月09日
    浏览(44)
  • 原来 vue3 文件编译是这样工作的!看完后更懂vue3了

    我们每天写的 vue 代码都是写在 vue 文件中,但是浏览器却只认识 html 、 css 、 js 等文件类型。所以这个时候就需要一个工具将 vue 文件转换为浏览器能够认识的 js 文件,想必你第一时间就想到了 webpack 或者 vite 。但是 webpack 和 vite 本身是没有能力处理 vue 文件的,其实实际背

    2024年03月09日
    浏览(58)
  • Python实现吃鸡游戏子弹and导弹自动追踪!原来是这样的一个原理啊!

    screen.blit(missile, (x1-missile.get_width(), y1-missile.get_height()/2)) dis_angle=d_angle-old_angle #dis_angle就是到下一个位置需要改变的角度 old_angle=d_angle #更新初始角度 pygame.display.update() 如果仅把导弹考虑为一个质点的话,那么以上算法就已经足矣,我没有做导弹的旋转,因为一个质点也不分头

    2024年03月28日
    浏览(83)
  • TCP/IP四层模型对比OSI七层网络模型的区别是啥?数据传输过程原来是这样的

    一、TCP/IP四层模型对比OSI七层模型 它们两个定义的一些功能和协议都是差不多的。TCP/IP四层协议模型比我们的七层少了三层,把我们的数据链路层和物理层放在一层里面了,叫做数据链路层(网络接口层),对应网络协议也没有变。 网络层和传输层是非常重要的,所以也没

    2024年02月14日
    浏览(43)
  • [数据结构 -- C语言] 堆实现Top-K问题,原来王者荣耀的排名是这样实现的,又涨知识了

    目录 1、什么是Top-K问题? 1.1 Top-K基本思路 2、Top-K问题逻辑分析 2.1 建堆,大小为K的小堆 2.2 将剩余的N - K 个元素依次与堆顶元素比较,大于就替换 2.3 打印堆 3、TopK实现代码 4、Top-K问题完整代码 结果展示: TopK问题的引入: 大家在玩王者荣耀的时候都遇到过xxx市第xxx某英雄

    2024年02月09日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包