原来你是这样的JAVA[01]-基础一瞥
1.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(4字节)。(PS:Java没有无符号整型)
- 2种浮点型:float(4字节),double(8字节)
- 字符类型:char
- 布尔类型:boolean
在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
//当前日期
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());//
System.out.println(date15.getMonth());//JANUARY
System.out.println(date15.getMonthValue());//
System.out.println(date15.getDayOfMonth());//
System.out.println(date15.getDayOfWeek());//WEDNESDAY
System.out.println(date15.getDayOfYear());//
注意:使用Date对象的getYear()方法,不能获取当前的年份
System.out.println(new Date().getYear());//117,不是我们想要的结果2017
我们看一下该方法的源码,计算的是当前年份和1900年的差值。
public int getYear() {
return normalize().getYear() - 1900;
}
原来你是这样的JAVA[01]-基础一瞥的更多相关文章
- Java 之 I/O 系列 01 ——基础
Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 整理<疯狂j ...
- 【Java初探实例篇01】——Java语言基础
示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...
- 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字
084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...
- 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法
083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...
- 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则
080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...
随机推荐
- Entity Framework 调用返回标量值的存储过程
最近项目用到EF,虽然说EF与Linq To SQL有很多地方相似,但是EF(这里指3.5版,4.0版的还没去留意)确实有些地方做得不够方便. 就拿存储过程来说吧,EF里面想调用存储过程不是直接在数据 ...
- Python 标准库 urllib2 的使用细节(转)
http://www.cnblogs.com/yuxc/archive/2011/08/01/2123995.html http://blog.csdn.net/wklken/article/deta ...
- OpenCV探索之路(二十七):皮肤检测技术
好久没写博客了,因为最近都忙着赶项目和打比赛==| 好吧,今天我打算写一篇关于使用opencv做皮肤检测的技术总结.那首先列一些现在主流的皮肤检测的方法都有哪些: RGB color space Yc ...
- MySQL阿里云安装问题小记
1. [root@iZ2zeg11g0cdei5171kqskZ mysql]# ./scripts/mysql_install_db --user=mysql FATAL ERROR: please ...
- iOS开发经验总结
总结了几个月的东西终于能和大家分享了,不多说,直接看东西! 1.禁止手机睡眠 1 [UIApplication sharedApplication].idleTimerDisabled = YES; ...
- 发现AspNet.Core版本控制库Bug一枚,你还想入坑?
我,博客写作小白一枚,注册账号多年却未曾留下只言片语,在潜水的这些年里从大家的博客中收获了很多新的知识忽觉惶恐心有不安,是时候给大家分享一些我的经验和教训了.嗯嗯,实话告诉大家前面的话的都是来凑字数的 ...
- Maven引入jar的总结
Overview:显示maven项目的一些基本信息 Dependencies:添加jar包的页面 Plugins:添加maven插件的页面.比如tomcat-maven-plugin等 Reporti ...
- Pyhton编程(五)之基本数据类型-列表、元组、字典
一:列表(list) 列表是由一系列按特定顺序排列的元素组成,可以创建包含字母表中的所有字母.数字.或中文的列表,也可以将任何东西加入列表中,其中的元素之间可以没有任何关系. 在Python中,用方括 ...
- 从Proxy.newInstance出发
写在前面 本篇博客是基于对动态代理,java的重写,多态特性了解的基础上对于源码的阅读,先提出几个问题 1.从静态代理变成动态代理需要解决两个问题,如何动态实现被代理类的接口并摘取接口中的方法,如果动 ...
- 将百度的ECharts整合到阿里的Weex中。
由于公司的业务,之前PC版产品中,大量的使用了百度的ECharts库.所以现在要做移动端,在大概熟悉了Weex基本语法和搭建环境后,就着手研究如何将这两个好东西糅合起来. 首先,按照Weex官方教程, ...