java语言基础知识 一般常识 java运行在JVM(java虚拟机)上,以此达到跨平台。JDK是java程序开发工具,而jre是java运行的环境。总的说JDK>JRE>JVM。java主要分为java SE(开发和部署桌面、服务端等的应用程序,是EE的基础)、javaEE(服务端)、javaME(移动微端)三个体系。java是纯粹面向对象的语言 ,相对于C++抛弃了指针和多继承,增加了内存管理。
编译相关 javac即把.java源文件编译为.class二进制规范文件,在通过java命令在JVM解释执行。
java学习必知 对象具有属性和行为,具有变化的状态,是某个类别的实例,具有唯一性。
java语言程序结构 hello world! 1 2 3 4 5 6 7 8 /*第一个java程序*/ public class HelloJava { // 这里是程序入口,public class指出其是个公共类,即如头文件一般可被其他类使用 public static void main(String[] args) { // 输出字符串,static指出其为静态方法,void即无返回值,main是所以程序的入口,即c中的主函数。 System.out.println("你好 Java"); } }
数据类型 基本数据类型
整型 int
字符串 String
字符型 char
布尔型 boolean
实型(单精、双精) float/double
构造数据类型
枚举类型
数组类型 // int[] score;int score[10]; 先申明,再赋值
结构体类型
共用体类型
变量 全局变量无static修饰,通过 对象名.变量名 访问,只要对象被引用,变量就存在;静态变量用static修饰,通过 类名.变量名或对象名.变量名 访问,生命周期取决于类的周期;局部变量仅在定义的方法中有效。
1 2 3 4 5 6 7 8 9 10 11 12 13 public class DataClass { String name; // 成员变量、实例变量 static final String website = "C语言中文网"; // 成员变量、静态变量(类变量) } public class Test { public static void main(String[] args) { DataClass dc = new DataClass(); // 创建类的对象 System.out.println(dc.name); // 对象名.变量名调用实例变量(全局变量) System.out.println(dc.website); // 对象名.变量名调用静态变量(类变量) System.out.println(DataClass.website); } }
数据类型转换 自动类型转化 自动向高级数据类型转换。整型→实型
强制类型装换 (数据类型) (表达式)
如 (int)(x/2+y)
String转换为int Integer.parseInt(str)
类似c语言调用外部头文件中的函数。
integer是一个类,int基本数据类型的封装类。
运算 常见表达式
java运算
说明
++a
先自加,再取值
a–
取值后自减
b=-a
取反 ,如12变-12
a+=5
a = a+5,即先加再赋值
位运算
运算符
说明
详细
&
按位与
9&5在内存中解为二进制,仅1与1为1
|
按位或
如上,有1则1
^
按位异或
如上。不同为1,相同为0
~
取反
取反
<<
左移
二进制左移,丢高位,低位补0
>>
右移
丢地位,高位按高位内容补
程序结构 判断体 if判断结构 1 2 3 4 5 6 7 8 9 10 if(表达式1) { 语句块1; } else if(表达式2) { 语句块2; ... } else if(表达式n) { 语句块n; } else { 语句块n+1; }
switch语句(与c存在细微差别) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public static void main(String[] args) { System.out.println("请输入座位号码:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); switch (num) { case 8: System.out.println("恭喜你,获得了三等奖!"); break; case 88: System.out.println("恭喜你,获得了二等奖!"); break; case 888: System.out.println("恭喜你,获得了一等奖!"); break; default: System.out.println("谢谢参与!"); break; } }
循环体 for循环 1 2 3 for(执行1;判断1;每次循环句){ 执行代码块; }
java特色for-each遍历数组
1 2 3 4 5 6 7 int[] numbers = { 43, 32, 53, 54, 75, 7, 10 }; // 声明并初始化int数组 System.out.println("----for each----"); for (int item : numbers) { // for-each语句 。for(类型 变量名:集合) System.out.println("Count is:" + item); }
while循环 1 2 3 while(为“真”即循环){ 执行代码块; }
do-while循环 1 2 3 do{ 执行代码块; }while(表达式); //至少执行一次。
break和continue循环中断 break跳出当前一层循环; continue结束本次循环开始下次。
各种类(一些默认包含的头文件) Java为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes)。基本数据类型转换为包装类的过程称为装箱 ,包装类变为基本数据类型的过程称为拆箱 ,即一个将同类型变量包装为一个类用于调用。 Java 所有的类都是Object类的子类,即java所有类默认包含Object这个头文件内容,即所有java类可调用object类的方法。
类的定义详细 1 2 3 4 5 6 7 8 9 public class Person { public String name; // 姓名,初始化null private int age; // 年龄,初始化为0 final int sex = 0; //修饰默认,即无法更改。若未赋值,则需要编写修改其值的方法。 public void tell() { // 定义说话的方法 System.out.println(name+"今年"+age+"岁!"); } }
类的封装 即把对象的细节隐藏,仅把通用的东西按规定的方式对外(只能通过设置的方法进行访问),如一台计算机内部复杂的内容,最后被封装为对外的几个接口。
类的继承 1 2 3 4 5 6 7 8 9 10 11 12 public class Student extends People { //student类继承people的属性和方法 private String stuNo; // 学号 private String department; // 所学专业 public Student(String name, int age, String sex, String sn, String stuno, String department) { super(name, age, sex, sn); // super是用于调用父类中的构造方法 this.stuNo = stuno; this.department = department; } public String toString() { return "姓名:" + name + "\n年龄:" + age + "\n性别:" + sex + "\n身份证号:" + sn + "\n学号:" + stuNo + "\n所学专业:" + department; } }
经典java语言程序