Java基础语法入门01

学习java你要先进行去了解JDK,JRE,JVM

JDK Java开发工具包

JRE Java语言开发的运行环境

JVM Java虚拟机,用于Java语言的跨平台所用。

当你下载jdk之后,jdk中包含jre,jre中包含jvm

java运行原理

java变量

变量用于保存数据,构成变量三个要素:变量类型,变量名称,变量值

变量的使用规则:

  • 先声明后使用
  • 声明进行初始化或声明后赋值
  • 在刚开始赋值时,只能赋一个值,但可以修改多次
  • mian方法中的变量先赋值才能输出
  • 避免使用中文

变量分为三种:

局部变量

  • 声明在构造方法、静态方法、实例方法、代码块中的变量,都是局部变量;
  • 不能使用static和访问修饰符修饰;
  • 可以使用final修饰,即为常量,不必在声明语句中赋值;
  • 当执行局部变量所在的方法或代码块时,才有机会被创建,在方法或代码块执行结束后被自动销毁;
  • 局部变量在内存的栈区分配;
  • 局部变量在使用之前必须要先赋值;

成员变量

  • 声明在所有方法体和代码块之外,并且没有使用static修饰的变量,叫做成员变量;
  • 可以使用访问修饰符和final修饰;
  • 使用final修饰时,一定要赋值;
  • 实例变量是在对象被创建时创建,对象被销毁时销毁;
  • 作用域范围在整个类中;

静态变量

  • 声明在所有方法体和代码块之外,并且使用static修饰的变量;
  • 可以使用访问修饰符修饰;
  • 一般配合final使用,即public  static  fianl,标识符使用大写;
  • 类变量被分配在静态存储区,是被所有该类的对象共享数据;
  • 类变量是在程序开始时被创建,程序结束时销毁;

标识符:是用于给 Java 程序中变量、类、方法等命名的符号,简单一些,就是你给这个变量或者这个类,方法起的名字。
标识符的四个遵守规则:
1.由字母,数字,下划线_,$符号组成,但不能由其他特殊符号组成,不能以数字开头。
2.区分大小写。
3.要见名知意。
4.不能是Java中的关键字或保留字。

java数据类型

Java数据类型分为两种:

基本数据类型:
  数值型:
  整数类型(byte,short,int,long)
  浮点类型(float,double)
  字符型(char)
  布尔型(boolean)
引用数据类型:
  类(class)
  接口(interface)
  数组
特别提醒String为引用类型。

基本类型存储的是数据的本身,引用类型存储的是保存数据的空间地址

变量类型的转换分为自动类型转换和强制类型的转换:
自动类型的转换:
1.目标类型与源类型兼容
2.目标类型大于源类型(字节大小)
强制类型的转换

使用“(转换类型)变量名称”这种方式进行强制转换。

java运算符

运算符(一种带有功能的符号)分为以下几种:
算术运算符:

特别注意:++ --出现在操作数值的左边和右边结果是不一样的

 int a=5;
int b=a++;
System.out.println(a);
System.out.println(b);

结果为:6,5
a++ 先进行将a的值赋予b,再进行了自增。

int a=5;
int b=++a;
System.out.println(a);
System.out.println(b);

结果为:6,6
++a 先进行自增,后赋值给b。

赋值运算符:

比较运算符:

特别注意:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

逻辑运算符:

特别注意:
&与&&的区别:
使用&&时候,有短路功能,即当第一个条件为错误时,不在进行判断第二个。
使用&时候,当第一个条件为错误时,仍进行判断第二个。
|与||的区别:
与&和&&相同,|前后两个条件都会进行判断,||遇到第一个为真时就不再进行判断。

条件运算符:

也称为三目运算符。
语法形式:布尔表达式 ? 表达式1 :表达式2

String ss=(5>7)?"正确":"不正确";
System.out.println(ss);

输出为:正确。
当括号内容正确时,输出第一个,错误时输出第二个。

运算符的优先级:

java流程控制语句

Java中的流程控制语句分为以下几种:
if语句:进行简单的判断条件,条件满足执行大括号内的内容。
if else语句:先进行判断if中的条件语句,满足执行其中语句,不满足执行else里面的语句。
switch语句:

switch(表达式){
case 值1:
执行代码块1;
break;
case 值2:
执行代码块2;
break;
......
default:
默认代码块;
}
执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。
特别注意:switch中的表达式的值类型必须是整数型或字符型。

while循环语句:循环语句,满足括号内的表达式,会进行循环,直到不满足,跳出循环。
do while循环语句:先进行循环在进行判断,先进行的do大括号内的语句,在进行判断do小括号内的表达式。
for循环语句:语法结构为

for(循环变量初始化;循环条件;循环变量变化){
执行代码块
}
Java循环跳转语句:
break:跳出循环,执行后面代码。
continue:跳过本次循环,进行下次循环。

java数组

数组就像一个大盒子,这个盒子规定了所放进物品的属性,所放进的物品,按照顺序进行放置,在进行取出来的时候,只需要知道它的位置信息就行了。

int[] a={7,8,9,10};
/*它的每一个值都有一个索引。索引从0开始,
当你想要取9这个值的时候,那么你输出语句应该这样写:*/
System.out.println(a[2]);
/*
a[0]=7;
a[1]=8;
a[2]=9;
a[3]=10;
*/

数组的使用
进行声明数组:
数组类型[] 数组名称;
或者 数组类型 数组名称[];

int [] a;
int a[];

给数组进行分配空间:
数组名称=new 数组类型[数组长度];

a=new int[5];

还可以将上面两个步骤进行合并:

int a=new int[5];

赋值:

a[0]=6;
a[1]=7;

还可以进行将上述三步合并成为一步:

int[] a={1,2,3,4}
//或者
int[] a=new int[]{1,2,3,4}
//注意 这个进行赋值new int[] 中括号的内容必须为空

学习数组时,会有这个操作,对数组进行排序,在java中有Arrays类进行操作数组

int[] a={3,2,5,9,6,};
//使用 Arrays.sort(数组名)对数组进行排序,但这个排序出来的顺序是从小到大的
Arrays.sort(a);
// 可以使用Arrays.toString(数组名);方法将一个数组转换成字符串,
//该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
System.out.println(Arrays.toString(a));
//输出结果为:[2,3,5,6,9]

在进行输出数组所有的值的时候,除了使用for这些循环输出外,可以使用一种更为方便的foreach
格式为for(元素类型 元素名称:遍历对象名称){
执行代码
}
元素名称是随意起的名字,但要符合变量起名规范,遍历对象名称就是你要进行遍历对象的名称

int a[]={5,6,87,23,45};
for (int aa:a) {
System.out.println(aa);
}

二维数组
一维数组就是一条线,所有的数据在这个线上存着,而二维数组就是一个平面,所有的数据都在这个平面上存着。
二维数组的声明和分配空间格式:
数组类型[][] 数组名=new 数组类型[行数][列数];
或者
数组类型[][] 数组名;
数组名=new 数组类型[行数][列数];

//定义了一个3行2列的二维数组
int [][] a=new int[3][2];
/*
或者int [][] a;
a==new int[3][2];
*/

给二维数组赋值:
数组类型[][] 数组名={{值,… ,值},…,{值,…,值}}
数组名[行的地址][列的地址]={{值,… ,值},…,{值,…,值}}
举个例子:

//一个3行2列的二维数组
int[][] a={{1,2},{3,4,},{5,6}};

在输出二维数组特别注意:需要两个循环

for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
System.out.println(a[i][j]);
}
}

java方法

怎么去定义java中的方法
定义方法的语法为:
访问修饰符 返回值类型 方法名(参数){
方法体
}
方法分为
1.无参无返回值方法
2.无参带返回值方法
3.带参无返回值方法
4. 带参带返回值方法

方法的使用
无参无返回值方法

public static void main(String[] args){
//创建一个名为tt的对象
myText tt=new myText();
//调用show方法
tt.show();
}
无参无返回值方法
public void show(){
System.out.println("hello world!");
}

无参带返回值方法

public static void main(String[] args){
myText tt=new myText();
int ss= tt.show();
System.out.println(ss);
}
// 无参带返回值方法
public int show(){
int a=10;
int b=20;
int sum;
sum=a+b;
return sum;
}

带参无返回值方法

public static void main(String[] args){
myText tt=new myText();
int a=10;
int b=20;
tt.show(a,b);
}
//带参无返回值方法
public void show(int a,int b){
int sum;
sum=a+b;
System.out.println(sum);
}

带参带返回值方法

public static void main(String[] args){
myText tt=new myText();
int a =10;
int b=20;
int ss=tt.show(a,b);
System.out.println(ss);
}
//带参带返回值方法
public int show(int a,int b){
int sum;
sum=a+b;
return sum;
}

方法的重载
什么是方法的重载?
方法的重载就是:
在同一个类中
1.方法名相同
2.方法参数个数不同
3.方法参数顺序不同
4.方法类型不同

public class myText {
public static void main(String[] args){
//创建一个对象
myText tt=new myText();
//调用方法
tt.show();
//调用重载方法
String name="菜鸟三四五";
tt.show(name);
//调用重载方法
int password=123;
tt.show(name,password);
}
public void show(){
System.out.println("无参无返回值方法");
}
public void show(String name){
//重载show方法,参数类型为字符串
System.out.println("name="+name);
}
public void show(String name, int password){
//重载show方法,参数个数两个,参数类型一个为字符串,一个为整数型
System.out.println("name="+name+"password="+password);
}
}

java类与面对对象

类是所有java程序中的组织单元,现有类才能创建对象。

类的通常格式:修饰符 class 类名
定义一个类:
类的名字
属性
方法

//创建一个名为computer的类
public class computer {
//类的属性(也叫成员变量)
String brand;//电脑的品牌
int price;//电脑的价格
String type;//电脑的类型 //类的方法
public void playGame(){
System.out.println("使用电脑打游戏");
}
public void netPlay(){ System.out.println("使用电脑上网!"+"brand:"+brand+" price:"+price+" type:"+type);
} }

使用类去创建对象
使用类去创建对象的过程叫做实例化

public class InitailComputer {
public static void main(String[] args){
//使用computer类进行创建computer对象,new computer()就是实例化
computer computer=new computer();、
//调用方法
computer.netPlay();
}
}

执行结果为:使用电脑上网!brand:null price:0 type:null

在没有给实例变量赋值的情况下,默认值为0和NULL

Java基础语法入门01的更多相关文章

  1. java 基础语法学习01

    Java基础语法 注释 初次使用idea时相关配置 new project ->Empty project->进入页面 再选择file->project structure-> ...

  2. Java基础语法入门

    一.Java运行原理 写好java代码,执行javac命令,通过jvm把.java源文件编译成.class文件,执行java命令把字节码文件编译成特定平台能识别的机器码 二.标识符 1.标识符是用于数 ...

  3. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

  4. 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现

    074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...

  5. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  6. 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法

    072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...

  7. 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法

    071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...

  8. 070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据

    070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据 本文知识点:综合案例-数组移位-从键盘接收数据 说明:因为时间紧张 ...

  9. 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求

    069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...

随机推荐

  1. SQL Server - CLUSTERED

    CREATE TABLE dbo.t_MetricBook ( MetricSetID smallint NOT NULL, BookID smallint NOT NULL, ReportingCc ...

  2. unicode & utf-8

    简单来说: Unicode 是「字符集」 UTF-8 是「编码规则」 其中: 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为 ...

  3. HTML基础-标签

    html标签元素 html标签 在HTML静态页面中,每个网页具有唯一`<html></html>`,即`<html>`标签. html div标签 即网页中的盒子 ...

  4. (七)Knockout 创建自定义绑定

    创建自定义绑定 你可以创建自己的自定义绑定 – 没有必要非要使用内嵌的绑定(像click,value等).你可以你封装复杂的逻辑或行为,自定义很容易使用和重用的绑定.例如,你可以在form表单里自定义 ...

  5. [转]一个普通IT人的十年回顾---金旭亮

    金旭亮老师十年体会,很有收获.转自网络. 金旭亮于1989年与超级解霸的开发者梁肇新同时迈入广西大学的校门,却走了一条与其不同的路. 1994年起开始自学计算机专业本科课程,并开始编程,从未间断,迄今 ...

  6. Scala数组| 集合

    arrays :+ 5尾部   头部5 +: arrays TODO 声明不可变数组,不能删; 默认情况下,scala中集合的声明全都是不可变的 val arrays: Array[Int] = Ar ...

  7. pyqt pyside QLineEdit 重写键盘事件

    pyqt pyside QLineEdit 重写键盘事件 def keyPressEvent(self, event): if (event.modifiers() & QtCore.Qt.S ...

  8. js单元测试

    最近研究了js的单元测试,分享一下心得. 说起单元测试以前还真是不太了解,这次索性了解一番,测试有很多包含单元测试,性能测试,安全测试和功能测试等几方面,本次只介绍一下单元测试. 前端进行单元测试主要 ...

  9. 教你正确打开async/await关键字的使用

    这段时间在项目开发中看到了一些async/await的使用,在aspnet core的host组件源码中也看到了许多的async/await代码.在开发时,正确的使用了async/await是可以提高 ...

  10. 用Margin还是用Padding?(转载)

    转载出自 海玉的博客 本文地址: http://www.hicss.net/use-margin-or-padding/ 用margin还是用padding这个问题是每个学习CSS进阶时的必经之路. ...