Java的基础知识

简介: 一、Java入门1.主体框架c语言:引入一个头文件,main函数#include <stdio.h>int main(){ printf("hello world"); return 0;}java:一个public的类(类名必须与文件名一致),main方法public class Main{ public static void main(String[] args){ System.out.println("hello, world"); }}注:java里面说的方法和c语言中的函数是一个意思。 2、 输入输出数据c语

一、Java入门

1.主体框架


c语言:引入一个头文件,main函数


#include

int main()

{

   printf("hello world");

   return 0;

}

java:一个public的类(类名必须与文件名一致),main方法


public class Main{

   public static void main(String[] args){

       System.out.println("hello, world");

   }

}

注:java里面说的方法和c语言中的函数是一个意思。


2、 输入输出数据


c语言:


#include //头文件

int main()

{

   int n;//声明一个变量

   scanf("%d",&n);//输入

   printf("n = %d\n",n);//输出

   return 0;

}

java:


import java.util.Scanner;//引入一个Scanner的包

public class Main {

   public static void main(String[] args) {

       Scanner scanner = new Scanner(System.in);//创建一个Scanner对象

       int n=scanner.nextInt();//输入

       System.out.println("n = "+n);//输出

   }

}

输入基本型数据


scanner对象调用不同方法读取用户输入的各种基本数据类型:


nextBoolean()、nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()


上述方法执行时都会阻塞,程序等待用户在命令行中输入数据并回车确定。


输出型数据


System.out.println()或 System.out.print()可输出串值、表达式的值,区别在于前者输出数据后换行,后者不换行。在Java中允许使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置一起输出。


System.out.printf()【类似于C语言的printf()函数】输出数据。


3、注释:(与C相同)单行注释使用“//”,多行注释用“/**/”


4、编码风格:


Allmans风格(独行风格):即左、右大括号各自独占一行。


Kernighan风格(行尾风格):即左大括号在上一行的行尾,右大括号独占一格。


二、基本数据类型与数组

标识符与关键字

1、数字不可以开头,不可以使用关键字(delete/new等)、保留字(operator、const等),区分大小写,不能包含空格


2、包名:均大写;


类名、接口名:单词首字母大写;


3、变量名、方法名:第一个单词首字母小写,其他单词首字母大写


4、常量名:所有字母都大写,多单词用“_"


2. 基本数据类型

Java中有八种基本数据类型:


逻辑类型:boolean(常量:true、false)


整数类型:byte(1个字节)、short(2个字节)、int(4个字节)、long(以后缀L表示,8个字节)


字符类型:char(char型变量的取值范围是0~65535,2个字节)


浮点类型:float(单精度浮点型、以后缀F或f表示,4个字节)、double(双精度,以后缀D或d表示,8个字节)


3. 类型转换运算

基本数据类型的级别(从低到高):byte 、char、short(平级)=> int  =>  long =>float =>double


1. 把级别低的变量赋给级别高的变量时,系统自动完成数据类型的转换。(自动类型转换)


1)表达式的结构的类型自动提升为操作数中最大的类型


2)boolean不参与转换


3)byte/short/char三者可以计算,但是有先转换为int类型,不会自动转换


例如:float  x = 100;//100是int整型,赋给浮点型float


2. 把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算。格式:(类型名)要转换的值;(强制类型转换)


例如:int x = (int)34.89;//34.89是float整型,赋给整型int


4. 运算符

算术运算符(+-*/%)、关系运算符(>.<.>=.<=.==)、逻辑运算符【短路与&&,短路或||,取反!;逻辑与&,逻辑或|,逻辑异或^】、赋值运算符【从右往左,左边只能是变量,复合赋值a+=b->a=a+b、三元运算符[条件表达式?表达式1:表达式2]              【与c语言用法相同】


算术混合运算的精度(从低到高的排序):byte ->  short -> char -> int -> long -> float -> double


instanceof运算符:二目运算符,左面的操作元是一个对象,右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。


位运算


原码、反码、补码;


负数:补码=反码+1;反码=原码符号位不变,其他位取反;


正数和0原、反、补都一样


位运算符

按位与&:有0则0

按位或 |:有1则1

按位异或^:相同为0

按位取反~:0为1,1为0

算术右移>>:低位溢出,符号位不变,符号位补溢出位(即 /2)

算术左移<<:符号位不变,低位补0(即*2)

逻辑右移>>>:无符号右移:低位溢出,高位补0

进制转换


二进制:以0b或0B开头


八进制:以0开头


十六进制:以0x或0X开头


进制转换


二、八、十六进制转换成十进制


从最低位(右边),将每个位上的数提取出来,乘以2的(位数-1)次,然后求和,


十进制转换成二、八、十六进制


将该数不断除以2/8/16,直到商为0为止,然后将每步得到的余数倒过来,将是对应的二、八、十六进制。


二进制转成八(十六)进制


从最低位开始,将二进制数每三(四)位一组,转成对应的八(十六)进制即可


八(十六)进制转成二进制


5. 数组

一种数据类型(引用类型)


1、动态初始化:数据类型[] 数组名=new 数据类型[大小];int[] a=new int[10];


数组的引用:数组名[下标/索引]


2、动态初始化:


先声明数组:语法:数据类型 数组名[];int a[]; 或数据类型[] 数组名;int[] b;


再创建数组:语法:数组名=new 数据类型[大小];a=new int[10];


3、静态初始化:数据类型 数组名[]={元素值,元素值,元素值……};int a={1,2,3…};


数组细节


1、数组是多个相同类型数据的组合,实现对这些数据的统一管理 2、数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用 3、数组创建后,如果没有赋值,默认int 0,short 0,byte 0,long 0,float 0.0,char\u0000,boolean false,String null 4、使用数组的步骤:1、声明数组并开辟空间,2、给数组各个元素赋值3、使用数组 5、数组的下标是从0开始的 6、数组下标必须在指定范围内使用,否则报:下标越界异常,比如:int []arr=new int[5];则有效下标在0-4 7、数组属引用类型,数组型数据是对象(object)


8、数组扩容或者缩减都需要创建一个临时数组,复制原数组的内容,再将原数组的数组名指向临时数组


二维数组


1、动态初始化:


1)int arr[][]=new int[2][3];


2)声明二维数组:int arr2[][];再开空间:arr2=new int [2][3];


3)int[][]str=new int[3][];


for(int i=0;i


str[i]=new int[i+1];//给每个一维数组开空间


for(int j=0;j


str[i][j]=i+1;//赋值


}


}


2、静态初始化:类型 数组名[][]={{值1……},{值2……},……};


3、二维数组的声明方式:int[][]y或者int[]y[];或者int y[][];


int[]x,y[]; x是int类型的一维数组,y是int类型的二维数组


6.控制结构(与c使用一致)

if条件分支语句

/*if语句*/

if(语句){//语句的表达式必须是boolean类型

   若干语句;

}

/*if-else 语句*/

if(表达式){

   若干语句;

}else{

   若干语句;

}

/*if-else if-else语句*/

if(表达式){

   若干语句;

}else if{

   若干语句;

}

……

else{

   若干语句;

}


分支控制

switch(表达式)

{

   case 常量值1:

           若干语句;

           break;

   case 常量值2:

           若干语句;

           break;

   ……

   case 常量值n:

           若干语句;

           break;

   default:

           若干语句;

       

}


switch语句中,“表达式”的值可以为byte、short、int、char和String类型


循环控制

/*for循环语句*/

for(表达式1;表达式2;表达式3){

   若干语句

}

/*while循环语句*/

while(表达式){

   若干语句

}

/*do-while循环语句*/

do{

   若干语句

}while();

break与continue:break结束整个循环语句;continue结束本次循环,不再执行本次循环中continue后面的语句,而转入下一次循环。

for语句与数组


for(声明循环变量:数组的名字){

   ……

}

注:1)声明的循环变量的类型必须和数组的类型相同。2)for(声明循环变量:数组的名字)中的“声明循环变量”必须是变量声明,不可以使用以声明过的变量。



目录
相关文章
|
5月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
41 1
|
6月前
|
Java 调度 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第29天】 在现代软件开发中,多线程编程是一个不可忽视的领域。特别是在Java这种广泛使用的编程语言中,掌握多线程的概念和技术对于开发高效、响应迅速的应用程序至关重要。本文将深入探讨Java多线程的核心概念、实现机制以及常见问题的解决方案。我们将从基础出发,逐步揭示如何通过多线程提升程序性能,并且讨论并发编程中的挑战和解决策略。文章的目的是为开发者提供一个清晰的多线程编程指南,帮助他们在实际项目中有效地应用这些知识。
39 3
|
6月前
|
Java 开发者
Java中的多线程编程:基础知识与实践
【5月更文挑战第26天】 在现代计算机科学中,多线程编程是一个复杂且强大的概念。Java作为一种广泛使用的编程语言,其对多线程的支持使得开发者能够创建出更为复杂、高效和响应迅速的应用程序。本文将深入探讨Java中的多线程编程,从基础概念到实际编程技巧,为读者提供全面的理解和实践指导。
|
6月前
|
监控 IDE Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第30天】 在现代软件开发中,多线程编程是提高应用程序性能和响应能力的关键。特别是在Java这样的多平台、多用途的编程语言中,掌握多线程技术至关重要。本文旨在为读者提供有关Java多线程编程的全面介绍,从基本概念到高级应用技巧,帮助初学者和有经验的开发者理解并有效使用多线程。文章不仅涉及基础理论,还包括代码示例和最佳实践,确保读者能够将知识应用于实际项目中。
|
6月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第28天】 在现代计算机科学中,多线程编程是一个重要的概念,它允许程序同时执行多个任务。在Java中,多线程编程是通过创建并管理线程来实现的。本文将介绍Java中多线程编程的基础知识,包括线程的概念、创建和控制线程的方法,以及线程同步和通信的相关技术。通过阅读本文,读者将对Java中的多线程编程有一个全面的了解,并能在实际编程中应用这些知识。
|
6月前
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
|
6月前
|
安全 Java
Java基础知识面试总结(全面,实时更新)
Java基础知识面试总结(全面,实时更新)
|
6月前
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
6月前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
6月前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。