数据类型:

java的数据类型分为两大类:基本类型和引用类型

基本类型:

整数类型:

  • byte 一个字节 -128-127
  • short 2个字节 32768-32767
  • int 4个字节 很大
  • long 8个字节 巨大 用long的时候赋值要在数字后加 L

扩展:

public class HelloWorld {
public static void main(String[] args) {
int i=10; //10进制
int i2=010; //八进制 八进制0开头
int i3=0x10; //十六进制 十六进制0x开头
int i4=10_00001_23; //JDK7新特性,数字之间可以用下划线分割,且输出的时候不会被输出
}
}

浮点类型:

  • float 4个字节 用float的时候赋值要在数字后面加 F
  • double 8个字节

扩展:最后完全避免使用浮点数进行比较

字符类型:

  • char 2个字节 只能发一个字符

​ String 定义字符串 不是关键字来的,是类

扩展:所有的字符本质还是数字即ASCII编码

转义字符:

  • \t 多几个空格
  • \n 换行
  • ....

boolean类型:

  • boolean xx= true

其值只有true和false两个

引用类型: 类、接口、数组


类型转换:

数字范围级别:低--------------------------------------------->高

​ byte,short,char --->int --->long--->float--->double

当高级别向低级别转换时,需要强制类型转换;低级别向高级别转换时,无需任何操作

数据类型按精度(容量)大小排序:


自动类型转换:

精度小的类型自动转为精度大的数据类型,这就是自动类型转换

自动类型转换细节:

  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大那种数据类型,然后再计算
  • 当把精度(容量)大的数据类型赋值给精度(容量)小的数据类型,会报错;反正会进行自动类型转换
  • (byte、short)和char之间不会相互自动转换
  • byte、short、char 它们三者可以计算,在计算时首先转换为int类型
  • boolean不参与转换
  • 表达式结果的类型自动提升为操作数中最大的类型

强制类型转换:

强制转换: (类型)变量名

注意:

  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干类型
  • 在把高容量转换到低容量时,需要强制类型转换。此时会出现内存溢出或者精度问题
  • 不同类型的数字相结合成为一个新的数字时,得出的结果按最高的级别来算,最低只能是int
public class HelloWorld {
public static void main(String[] args) {
int i=10_0000_0000;
int b=20;
long sum=i*b; //结果是负数,原因是i*b之后还是int类型,然后溢出了
long sum1=i*((long)b); //结果是正数,先把一个数转化为long 结果i*b之后就算long
System.out.println(sum);
}
}

变量与常量:

变量分为类变量、实例变量、局部变量

public class HelloWorld {
//类变量 static
static double salary= 2000; //实例变量:从属于对象;若不进行初始化,则为默认值,整数0 浮点数0.0 布尔值false 除了基本类型其余都是NULL
int a;
//main方法
public static void main(String[] args) {
//局部变量:必须声明且初始化,有效范围只在方法內
int i=10; //局部 //变量类型 变量名字 = 值 使用实例变量必须new
HelloWorld text = new HelloWorld();
System.out.println(text.a); //类变量 static 类变量可以直接用
System.out.println(salary);
}
//其他方法
public void add(){ }
}

常量:

格式:final 常量名 =值; 常量名一般用大写字符

public class HelloWorld {
//修饰符,不存在先后顺序,所以可以改为final static
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}

变量的命名规范:

  • 类成员变量:首字母小写和驼峰原则(除了第一个单词外,后面的单词首字母大写)myName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:MyName
  • 方法名:首字母小写和驼峰原则:myName()

运算符:

数字范围级别:低--------------------------------------------->高

​ byte,short,char --->int --->long--->float--->double

不同类型的数字相结合成为一个新的数字时,得出的结果按最高的级别来算,最低只能是int

关系运算符:返回值是true或false

public class HelloWorld {
public static void main(String[] args) {
int a=10;
int b=20;
//字符串连接符 + 当出现字符串时,会把字符串后的内容转化为字符串,并进行连接
System.out.println(""+a+b); //结果1020
System.out.println(a+b+""); //结果30
}
}

Scanner对象:

可以通过Scanner类获取用户的输入

Scanner的用法:

  • 导包:import java.util.Scanner; (IDEA上new一下就自动导包了)
  • 新建对象:Scanner s new Scanner(System.in); s是变量名,其他都不能改
  • 使用对象:
    • s.next(); 输入字符串,遇到空格结束 s.nextLine() 输入字符串,遇到回车结束
    • s.nextInt(); 输入整数
    • s.nextFloat(); 输入浮点数float类型
    • s.nextDouble(); 输入浮点数double类型

在一个方法中new了一个scanner对象后,可以给不同的类型进行输入赋值

通过Scanner类的next()与nextLine()方法获取输入的内容,一般读取前需要使用hasNext()与hasNextLine()来判断是否含有相同类型的输入的数据。如hasNextInt() 判断输入的是否是整数

import java.util.Scanner;
//hasNext()的用法
public class doc {
//输入多个数字,算总和和平均数。通过输入非数字来结束
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
while(scanner.hasNextDouble()){ //当我输入到x时 x不是double类型 循环结束
double x=scanner.nextDouble();
m++;
sum+=x;
}
System.out.println("和为:"+sum);
System.out.println("平均值:"+(sum/m));
}
}

next()与nextLine()的区别:

  • next()遇到空格就作为分隔符或结束符
  • nextLine()以Enter作为结束符 可以获得空白
import java.util.Scanner;
public class doc {
public static void main(String[] args) {
Scanner s =new Scanner(System.in);
System.out.println("使用next方式接收");
//判断用户有没有输入字符串
if(s.hasNext()){ //先判断用户输入的是什么内容
//使用next接收
String str=s.next();
System.out.println("输入的内容:"+str); //输入Hello World 结果为Hello
}
//用完scanner最好关闭
s.close();
}
}
import java.util.Scanner;
public class doc {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("用nextline方式接收");
if(s.hasNextLine()){ //先判断用户输入的是什么内容
//使用nextLine接收
String str=s.nextLine();
System.out.println("输入的内容为:"+str); //输入Hello World 结果为Hello World
}
s.close();
}
}

选择结构:

单选择结构:

if(布尔表达式){ //true就执行

}

import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
String a=s.nextLine();
//equals 字符串比较
if(a.equals("Hello"))
System.out.println(a);
s.close();
}
}

双选择结构:

if(布尔表达式){ //ture 就执行

}else{ //false就执行

}

import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("输入成绩:");
int score=s.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
s.close();
}
}

多选择结构:

if(布尔表达式1){ //true就执行

}else if(布尔表达式2){ //true就执行

}else if(布尔表达式3){ //true就执行

}else{ //上面3个表达式都false就执行

}

import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int score=s.nextInt();
if(score==100){
System.out.println("满分");
}else if(score<100&&score>=90){
System.out.println("A");
}else if(score<90&&score>=80){
System.out.println("B");
}else{
System.out.println("C");
}
s.close();
}
}

switch多选择结构:

switch(表达式){

​ case 常量:语句;break;

​ case 常量:语句;break;

​ case 常量:语句;break;

​ default: 语句;break;

}

JDK7的新特性,表达式的结果可以是字符串!

public class Demo {
public static void main(String[] args) {
char grade='C';
switch (grade){
case 'A':
System.out.println("A");
break; //若不写break,会发生case穿透
case 'B': //这个case无break,若执行了,还会穿透到下面的case C
System.out.println("B");
case 'C':
System.out.println("C");
default:
System.out.println("aaaa"); }
}
}

循环结构:

while循环:

while(布尔表达式){

//内容

}

do....while循环:

do{

}while(布尔表达式);

do....while() 至少执行一次

for循环:

for(初始化;布尔表达式;更新){ //初始化不能只写一个变量,必须带上赋值

}

输入循环次数加上 .for 回车自动生成for循环

public class Demo {
public static void main(String[] args) {
int a=1;
int sum=0;
for(a=1;a<=100;a++){ //写成for(a;a<=100;a++) 就报错
sum+=a;
}
System.out.println(sum);
}
}

练练手:

public class Demo {
public static void main(String[] args) {
//输出1-1000之间能被5整除的数,每行输出3个
for (int i = 1; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t"); //print输出后不换行,println输出自带换行
}
if(i%(5*3)==0){ //每行输出3个
System.out.println(); //换行
//System.out.print("\n"); 换行
}
}
}
}

增强for循环:

增强for循环主要用于数组或集合的循环

for(声明语句 :表达式){

//代码句子

}

public class Demo {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50}; //定义数组
//遍历数组的元素
for (int x:numbers){ //numbers数组的每一项遍历出来赋值给了x
System.out.println(x);
}
System.out.println("==============");
//等同于上面的代码
for(int i=0;i<5;i++){
System.out.println(numbers[i]);
}
}
}

break与continue:

break:用于结束循环,不执行了

continue:用于结束这一次循环,进行下一次循环


数组:

一维数组的介绍

数组是相同类型的数据的有序集合,每一个数据成为一个数组元素,每一个数组元素可以通过一个下标来访问

数组是引用类型。它的元素相当于类的实例变量

特点:

  • 数组的长度是固定的。一旦被创建,大小不可以改变
  • 其元素必须是相同类型
  • 数组中的元素可以是任何类型数据,包括基本类型和引用类型
  • 数据变量是引用类型,数组也可用看成是对象,数组中的每个元素相当于该对象的成员变量
  • 数组本身是对象,数组对象本身是在堆中的

数组的声明创建:

先声明数组变量,然后通过new来创建数组,数字的下标从0开始

public class Demo01 {
public static void main(String[] args) {
//变量类型 变量名字 = 变量的值;
int[] nums1; //声明了一个数组,首选,但是还没分配空间; 可写成int nums2[]; 不推荐
nums1 = new int[10]; //分配空间,创建一个可以放10个int类型数据的数组
int[] nums2=new int[10]; //这一行把定义和new结合,等同于上面2行
nums2[0] = 1; //给数组第0个数组赋值
}
}

数组的声明:

public class Demo02 {
public static void main(String[] args) {
//静态初始化:创建+赋值 不用写new,但是初始化有多少个值,就是数组的长度
int[] a={1,2,3,4,5,6,7,8}; //动态初始化: 创建后,数组元素默认都为0
int[] b=new int[10];
}
}

数组的赋值和遍历:

获取数组的长度用arrays.length (arrays数组变量名)

public class Demo01 {
public static void main(String[] args) {
int[] num=new int[10];
for (int i = 0; i < 10; i++) {
num[i]=i;
}
//遍历输出数组
for (int i = 0; i < num.length; i++) { //num.length 是数组的长度
System.out.print(num[i]+" ");
}
System.out.println();
//增强型for输出数组 没有下标
for (int array : arrays) { //输入数组名.for 快速生成
System.out.println(array);
}
}
}

数组作为方法的参数

public class Demo04 {
public static void main(String[] args) {
int[] arrays={1,2,3,4,5};
printArrays(arrays); //数组作为参数
}
//打印数组 数组作为方法的参数
public static void printArrays(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
} }

=数组作为返回值

public class Demo04 {
public static void main(String[] args) {
int[] arrays={1,2,3,4,5};
int[] reverse = reverse(arrays);
}
//反转数组 数组作为返回值
public static int[] reverse(int[] arrays){ //定义的方法类型必须也是数组
int[] result =new int[arrays.length];
for(int i=0,j= result.length-1;i< arrays.length;i++,j--){
result[j]=arrays[i];
}
return result; //返回一个数组
} }

二维数组的介绍

二维数组就是一个数组中存放了其他数组

当初始化一个二维数组时,若某行某列没有赋值,则默认不存在,遍历的时候并不会输出

public class Demo05 {
public static void main(String[] args) {
//定义了一个array[4][2]
int[][] array={{1,2},{2,3},{3,4},{4,5}};
System.out.println(array.length); //输出二维数组的长度是4
System.out.println(array[0].length); //输出二维数组中第一个数组的长度 结果是2
//二维数组的打印
for (int i = 0; i < array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}

二维数组的增强型for遍历:

快捷操作:array1.for 就自动生成 for (int[] ints : array1) 然后ints.for就自动生成for (int anInt : ints)

public class Demo07 {
public static void main(String[] args) {
int[][] array1 =new int[11][11]; //二维数组的定义
for (int[] ints : array1) { //相当于把array1中的每一个数组赋给了ints
for (int anInt : ints) { //把ints数组中的值赋给了anInt
System.out.print(anInt+" ");
}
System.out.println();
}
}
}

Arrays类

Arrays类包含了多种对数组进行特定操作的方法

使用的时候就 Arrays . 方法(数组名) 就可以直接使用

使用Arrays需时会自动导包 import java.util.Arrays;

Arrays类的方法可以查看JDK帮助文档

常用的有:

  • toString 打印数组
  • sort 升序排序数组
  • equals 比较数组中的元素是否相等
  • binarySearch 对排序好的数组进行二分查找
import java.util.Arrays;

public class Demo05 {
public static void main(String[] args) {
int[] a={1,2,3,456,12,4};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}

2.JAVA入门基础知识的更多相关文章

  1. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  2. java必备基础知识(一)

    学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...

  3. USB入门基础知识(转)

    源:USB入门基础知识 相关名词: 主机(Host) 设备(Device) 接口(Interface) 管道(Pipe) 管道是主机与设备端点数据传输的连接通道,代表了主机的数据缓冲区与设备端点之间交 ...

  4. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  5. 什么才是java的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

  6. React Native 入门基础知识总结

    中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...

  7. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  8. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  9. java部分基础知识整理----百度脑图版

    近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...

  10. Java入门基础(类)

    类 在Java中表示自定义的数据类型,一个class可以是若干基本类型的组合. public class Student { public String id;//学号 public String n ...

随机推荐

  1. 全面加速 GitHub,git clone 太慢的 9 种解决办法

    https://cloud.tencent.com/developer/article/1835785

  2. Delphi注解(不是注释)

    开发环境Delphi XE10 1 unit Unit1; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUt ...

  3. 百度自定义底图(瓦片图)升级 HTTPS

    本文地址:https://www.cnblogs.com/veinyin/p/14338414.html 记录一下开发中遇到的问题与解决方案 使用 Leaflet 开发,设计为了美观采用百度自定义底图 ...

  4. Manage your references to .Net assemblies Dynamics 365 for Operations VS projects

    (Dynamics 365 for Operations was previously known as the New Dynamics AX) Dynamics 365 for Operation ...

  5. hive --service metastore 启动报错

    1.问题示例: [Hadoop@master Hive]$ hive --service metastore2021-10-28 15:37:57: Starting Hive Metastore S ...

  6. IDEA设置自定义代码模板

    1. 进入IDEA界面,File–>Settings 注:其中, $END$代表打印字符串后光标所处的位置 如: System.out.println($END$); 表示输出后光标在()里面.

  7. python 调试 qml

    1.设置pycharm的parameters -qmljsdebugger=port:10002,block 2.python 启动调试: 点击debug按钮 3.设置qt creater qt cr ...

  8. 通过cpolar内网穿透 https://blog.csdn.net/CpolarLisa/article/details/128148698

    远程办公:通过cpolar内网穿透,远程桌面控制家里公司内网电脑_Cpolar Lisa的博客-CSDN博客 https://blog.csdn.net/CpolarLisa/article/deta ...

  9. vue 作者在2022-2-7起宣布 vue3 正式作为默认版本

    vue 作者在2022-2-7起宣布 vue3 正式作为默认版本 vue 作者尤雨溪在知乎上发布一篇文章,宣布 Vue3 将在 2022 年 2 月 7 日 成为新的默认版本! 并且还在文章中做出了一 ...

  10. CSS函数var

    /*全局变量保存的地方*/ :root { --main-bg-color: red; /* 变量名必须以--开头 */ } var(custom-property-name, value) 值 描述 ...