【名师课堂】Java零基础入门

【名师课堂】Java零基础入门

26课时 |
79037人已学 |
(30 评论)

加入学习
加入学习

Java的发展历史:

java是使用C++开发出来的,最初java原本是以一个GREEN项目为主的的支持平台,主要目的是通过email来控制所有家电产品的运行,就是现在的物联网概念,后来SUN工程师用C++开发出了一套OAK平台,没有竞标成功,so没有人使用。

90年代初有一家网景公司上市了,公司主打浏览器(作品:FireFox),SUN工程师向网景公司学习浏览器技术,推出HotJava,在HotJava的基础上,1995年,推出java编程语言

SUN(斯坦福大学网络)是一家最早重试硬件开发的公司。java只是其软件产品,其最著名的就是他的小型机(amazon亚马逊使用的就是小型机),然后感受了互联网低潮,2009年被oracle收购了

Java的主要设计师-james Gosling

JDK(Java Development Kit)的主要版本

→1995.5.23,JDK1.0,Java正式推出

→1998.12.4,JDK1.2,Java更名为Java2

→2005.5,JDK1.5,Java更名为Triger

现在的最新版本是JDK1.8

→最主要的特性是提供了Lambda

→JDK1.9还没出来,最大的特点在于程序模块化的支持

整个Java最初的开发模式一共分为三类

→Java SE(2005年之前成为J2SE):单机版程序的开发,作为基础版平台

→Java ME(2005年之前称为J2ME),是进行移动开发的,没赶上好时候,(诺基亚出来了)(后来这项开发已经被Android所取代)

→Java  EE(2005年之前称为J2EE),是Java开发的企业版

感受:这个平台的教师的笔记怎么没有提供,也许是故意的,哈哈,这笔记我是看了第二遍,特地总结的重点,基本都是老师的笔记,等我把这些都看完,是不是就是大牛了

[展开全文]
小花花花 · 2017-09-06 · Java简介(Java发展概述) 2

1.java文件可以分为:

     编译期:

java文件,经过编译,生成  .class字节码;

     运行期:

JVM加载  .class并运行,  .class(生成二进制);

 

 

 

2.java的特点:

     1)java具备可移植性;

     2)java语言的开发足够简单;

     3)Java是为数不多支持多线程编程的语言;

     4)Java支持自动的垃圾手机处理;

     5)java是一种面向对象的编程语言;

总结:就是java发展到现在已经成为一种事实上的行业标准;

 

[展开全文]
秦海易鸣 · 2017-05-23 · Java简介(Java主要特点) 1

while循环和for循环

  1. while(循环的结束条件判断){

循环体;

循环条件变更;

}

do...while基本不使用。

for(循环初始化;循环结束条件判断;循环条件变更){

循环体;

}

  • 对于不知道循环次数,但是知道循环结束条件时使用while循环。
  • 明确知道循环次数,则使用for循环。
[展开全文]
终结命运 · 2017-06-28 · 程序逻辑控制(循环结构) 1

JDK的安装和配置

下载地址:https://www.oracle.com/index.html

sun.com也可以

在进行JDK的安装之前,把电脑上防火墙都关掉,否则很可怕的后果

安装很简单,一键安装

安装到一半的时候会询问是否要安装JRE(java运行时解释),电脑上要执行java程序,只要有JRE就够了,这次安装会影响到系统本身的JRE

windows修改环境PATH属性内容,与其他内容用分号“;”隔开

把JDK目录配置进去就好了

所有命令行方式一定要在重新启动之后才可以渠道新的环境属性

 

[展开全文]
小花花花 · 2017-09-07 · JDK的安装与配置 1

高级语言类型:

  1. 编译型
  2. 解释型
Java是以上两种语言的结合。.java先编译生成.class文件,Java解释器负责Java虚拟机的代码在特定的平台上运行

Java的主要特点:

  • Java语言具有可移植型
  • Java开发足够简单
  • java是为数不多的多线程编程语言
  • Java支持自动的垃圾收集处理
  • java是一门面向对象的编程语言。

 

[展开全文]
里程碑 · 2017-12-02 · Java简介(Java主要特点) 1

Java开发先需要一个JDK的开发包。

JDK安装之前,把防火墙都关掉,否则会产生可怕的后果。

只安装jre就会导致javac找不到该命令。

java环境变量配置:

  • 在path中添加java/bin所在的绝对路径

新的环境属性必须在重启之后才会生效。

[展开全文]
里程碑 · 2017-12-02 · JDK的安装与配置 1

第一个Java程序:所有程序文件必须以.java文件名后缀。

public class Hello {
  public static void main (String argsp[]) {
    System.out.println("hello world!");
  }
}

 

执行步骤:

  1.  编译源代码文件,将其形成*.class文件。执行命令行javac Hello.java就会生成*.class文件。
  2. 解释java文件:java Hello
注意:其中的类名必须与文件名保持一致,不然就会报“类HelloWorld是公共的,应在名为HelloWorld.java的文件中声明”的编译错误。
 

1. 程序类的定义:类是java中的基本单位,所有的java程序都是以类的形式存在的,在java中对于类的定义有两类语法:

  • public class 类名称 {}:类名必须和文件名保持一致
  • class 类名称 {}:文件名称可以与类名称不同,生成的字节码文件就是类名称.class,在一个*.java文件里面可以使用class定义多个类,并且在编译之后会形成不同的*.class文件。
类名的首字母一般大写
在java的学习中可能会在一个*.java文件中定义多个类,主要是方便浏览,但是在实际的开发当中,几乎每一个java文件只会定义一个类。
 
2.主方法:主方法是一切的起点,也就是说所有的程序都要通过主方法开始执行;而主方法的定义如下:
public static void main (String argsp[]) {
    System.out.println("hello world!");
  }

主方法中编写的代码才是你整个程序该执行的程序逻辑;

以后我们把主方法所在的类都称为主类,而主类一般都是用public class 声明;

3. 信息输出:指的是在 屏幕上进行信息的打印操作,而信息输出有以下两类语法:

  • 输出后换行:System.out.println(内容);
  • 输出后不换行:System.out.print(内容);
初期写代码先用记事本完成。
 
 
[展开全文]
里程碑 · 2017-12-02 · 第一个Java程序 1

CLASSPATH环境属性

CLASSPATH指的是类的加载路径。

如果一个Hello.class想要执行,那么命令行就必须在Hello.class所在的目录,否则就无法执行。

那么如何做到即使不在Hello.class所在的目录,也能执行这个文件呢?

那么这个时候就必须用我们的CLASSPATH来进行控制,所以执行如下命令:

  • SET CLASSPATH=d:\mydemo

结论:java解释一个程序类的时候,一定首先取得classpath设置的路径,而后才开始类的加载操作。

需要注意的是,如果你现在的classpath设置的目录很多,那么对于程序的解释执行会非常不方便,所以最好采用的是默认机制:从当前所在的路径中进行类的加载,那么我们可以将classpath的内容设置为‘.’

  • SET CLASSPATH=.
所以不建议大家去改变CLASSPATH的配置,当然我们可以为我们的项目去添加一个环境属性。
 
在环境变量中添加。
[展开全文]
里程碑 · 2017-12-02 · CLASSPATH环境属性 1

 程序注释

一般写的程序代码之中都要求加上注释,这样可以方便的进行程序的阅读。

在程序中支持三类注释:

  • 单行注释:// 注释内容
  • 多行注释:/*注释内容*/
  • 文档注释:/** 文档注释标记 */
注释与代码最大的区别是所有的注释内容不会被程序编译器所编译.
这个注释直接和你以后的项目文档有直接联系.
 

 

[展开全文]
里程碑 · 2017-12-02 · Java程序基本概念(注释) 1

标识符与关键字

程序是一种逻辑的集合,所以每一个逻辑题上都应该有一个自己的标记,例如:在程序之中定义变量.定义常量,变量,类名,方法名称等都有自己的一个命名要求:在java中标识符的命名要求如下:由字母,数字,_,$所组成,其中不能以数字开头,不能使用java中的保留字(关键字)

建议:

  • 标识符采用有意义的简单命名,例如: student_name;
  • $不要在你的代码中出现,因为其有特殊含义
关键字说明:
  • java有两个未使用到的关键字:goto,const
  • java中的有特殊含义的单词(不算关键字):null,false,true;
  • JDK1.4之后追加了assert关键字
  • JDK1.5之后追加了enum关键字
[展开全文]

java数据类型划分以及数据类型操作

1. java的数据类型划分

两大类:

  • 基本数据类型:
  • 引用数据类型:
1. 基本数据类型:
         数值型: 表示整数或小数;
                整形:byte,short,int,long; 默认值:0;
                浮点型:float,double;默认值:0.0;
         字符型:char;默认值:'\u0000'
         布尔型:boolean;默认值:false
2. 引用类型:数组,类,接口;默认值:null
 
选用原则:
  • 表示整数:int,描述小数就是用double.
  • long这种数据类型一般会用来描述日期时间,内春大小或文件大小(字节);
  • 如果需要进行编码转换或者进行二进制数据传输,使用byte(-127-128)
  • char一般在描述中文的时候使用到(基本上都会忽略).
  • boolean在描述程序逻辑的使用.
 
 
 
[展开全文]

整型类型

在java中任意一个整形类型都是int型.

在整型的操作的过程中也会存在有一个数据溢出的问题,指的是当已经达到整型的最大值或最小值,进行数学计算而可能产生的错误数据.

变量的命名使用小驼峰法:maxValue;

Integer.MAX_VALUE;最大值

Integer.MIX_VALUE;最小值

public class Intyichu{
  public static void main(String args[]){
    int num = Integer.MAX_VALUE;//最大值
    System.out.println(num + 1);//溢出,加一变为最小值
  }
}

解决int溢出问题,解决方案只有一个那就是跟换数据类型,使用long类型.

  • 将int的数据变量赋值给long类型再计算
public class Intyichu{
  public static void main(String args[]){
    int num = Integer.MAX_VALUE;//得到整形最大值
    long result = num;//将其赋给long数据类型
    System.out.println(result + 1);//这样就不会存在数据溢出的问题了
  }
}
  • 将int的数据类型变为long
public class Intyichu{
  public static void main(String args[]){
    int num = Integer.MAX_VALUE;//得到整形最大值
    long result = (long)num + 1;//先将其变为long数据类型
    System.out.println(result);//这样就不会存在数据溢出的问题了
  }
}

 

大的数据类型塞到小类型里面:

public class Intyichu{
  public static void main(String args[]){
    //任何的整数其默认类型都是int,但是该数据已经超过了int可以保存的数据范围
    //那么现在就需要将这个数据明确的表示这是个long型的
    long num = 2147483648L ; //'L'或'l'都可以
    //在强制的时候设置其目标类型,这种操作都有可能会丢失其精度
    int result = (int)num;//大的类型变为小的类型,必须强制
    System.out.println(result);//-2147483648
  }
}
  • 范围小的数据类型可以自动变为大的数据类型型
  • 数据范围大的数据类型只有强制转换才可以转换为小的数据类型
  • 尽量不要使用以上操作
重要说明:之前说过所有数据类型都有一个默认值,但是其在主程序中无效
错误示范:
public class Intyichu{
  public static void main(String args[]){
    int num ;//定义一个num变量
    System.out.println(num);//错误,可能尚未初始化
  }
}

两种解决方案:

  • 在变量输出前为变量设置内容
public class Intyichu{
  public static void main(String args[]){
    int num ;//定义一个num变量
    num = 10;//在输出前为其设置内容
    System.out.println(num);//错误,可能尚未初始化
  }
}

这种方式在老版本中也会出错.

  • 通用做法
public class Intyichu{
  public static void main(String args[]){
    int num = 10;//在输出前为其设置内容
    System.out.println(num);//错误,可能尚未初始化
  }
}

说到整型,不得不去考率byte数据类型,他的保存范围是:-128~127之间。

范例:声明byte类型

public class Intyichu{
  public static void main(String args[]){
    //10是int,int的范围要大于byte范围,那么理论上需要强制转换
    //可是没有转换,因为其数据量没有超出byte范围,符合byte要求
    byte data = 10 ;//10是int类型在byte范围内
    System.out.println(data) ;
  }
}

如果现在你为byte赋值的内容大于byte的范围,这个时候就需要强制转换了。

public class Intyichu{
  public static void main(String args[]){
    byte data = (int)128 ;
    System.out.println(data) ;//-128
  }
}

同时需要注意的是,如果要将int常量直接赋值给byte变量,那么要求只能够是常量,而不能是int变量。

错误实例:

public class Intyichu{
  public static void main(String args[]){
    Int num = 10;
    byte result = num;
    System.out.println(result);
  }
}

正确实例:

public class Intyichu{
  public static void main(String args[]){
    Int num = 10;
    byte result =(byte) num;
    System.out.println(result);
  }
}

在开发中,byte和int经常会一起出现。

 
[展开全文]

浮点数

如果要想描述的小数的数据,默认的数据类型是double;

范例:定义小数

public class Intyichu{
  public static void main(String args[]){
    double num = 10.2;//这是一个小数,默认类型就是double类型
    //num是double类型 * int型常量 = double类型
    //num * 2.0(由int变为double型)
    System.out.println(num);
  }
}

而同时最需要注意的是,double可以保存的数字是最大的,也就是说double可以保存全宇宙中最大的有意义数字。

float也可以用来描述小数,但是float的数据范围要小于double,而且要求在定义的时候进行强制转换,在数字后面加一个字母'f','F

实例:

public class Intyichu{
  public static void main(String args[]){
    float f1 = 1.1F;
    //float变量 * int常量 = float类型
    System.out.println(f1 * 2);
    System.out.println(1.1 * 1.1);//传统bug 1.2100000000000002
  }
}

 

说到小数,不得不说一下整型的计算问题

实例:

public class Intyichu{
  public static void main(String args[]){
    int num1 = 10 ;
    int num2 = 4 ;
    //int型除以int型 = int型
    System.out.println(num1 / num2) ; //2
  }
}

如果要保证精度就必须保证其中一个是double或float型。

以后要进行除法运算的时候请一定要注意好你的类型。

[展开全文]

String型(字符串)

char描述的只是单个字符,但是如果描述某个人的姓名单一字符做不到。那就要使用String型。

但是要说明的是。string并不是一个基本的数据类型,String是一个引用数据类型,不过这种类型在使用中比较特殊,可以按照基本数据类型的使用模式来进行套用。

范例:观察String型

public class Boolean{
  public static void main(String args[]){
    String site = "隔壁";
    String name = "老王";
    System.out.println(site + name);//+表示的是字符串的拼接
  }
}

范例:观察加号问题

public class Boolean{
  public static void main(String args[]){
    String site = "隔壁";
    String name = "老王";
    int num = 1;
    double num1 = 10.1;
    System.out.println(site + name + num + num1);//+表示的是字符串的拼接 结果为隔壁老王110.1
  }
}

一旦在+的操作中出现字符串则表示的是字符串的拼接。都变为String类型。

()可以解决优先级问题。

转义字符:

表示换行(\n),

缩进(\t),

\(\\),

'(\')

[展开全文]

方法的定义和使用

首先对于方法的最大好处是可以进行重复调用,但是至于说哪些操作要形成方法,这些都要根据项目的实际经验来进行自我总结的。

 

2.1.方法的基本定义

限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法直接调用的方法形式。

方法指的是一段可以被重复调用的代码块。

在java里面如果想要进行方法的定义,我们可以使用以下的语法使用:

public static 方法返回值 方法名称([参数类型 变量,.....]){

       方法体代码;

       [return [返回值] ;]

}

在定义方法的时候对于方法的返回值有以下的两类:

  • void:没有返回值;
  • 数据类型(基本类型,引用类型);
范例:定义一个没有返回值,没有参数的方法
public class Fangfa{
	public static void main(String args[]) {
		print();
		print();
		print();
	}
	public static void print() {
		System.out.println("*************");
		System.out.println("*Hello world*");
		System.out.println("*************");
	}
}

 范例:定义一个有参数无返回值的方法

//有参数无返回值的方法
public class Fangfa1{
	public static void main(String args[]) {
		print("hello");
		print("world");
		print("kai");
	}
	public static void print(String str) {
		System.out.println("*************");
		System.out.println("*"+str+"*");
		System.out.println("*************");
	}
}

范例:有参数有返回值的方法

//有参数有返回值的方法
public class Fangfa2{
	public static void main(String args[]) {
		int result = add(10,20);
		System.out.println(result);
		//既然方法有返回值,那么这些返回值也可以直接输出
		System.out.println(add(100,200));
	}
	public static int add(int x,int y) {
		return x+y;
	}
}

但是在定义方法的时候有一点要特别注意,如果某一个方法上使用了void定义(无返回值),那么该方法可以直接用return来结束调用。一般而言,这种return往往需要结合if判断来实现。

范例:

public class Fangfa3{
	public static void main(String args[]) {
		print(10);
		print(20);
	}
	public static void print(int x) {
		if(x == 20) {
			return;
		}
		System.out.println("x = " + x);
	}
}

对于第一次接触方法的人来讲,先将语法记住了,至于怎么用需要时间来消化。

 

[展开全文]

D:\Java\jdk1.8.0_74\bin

环境变量

PATH

在最前面追加 

D:\JAVA\JDK1.8.0_74\bin;

 

 

[展开全文]
诺1 · 2017-07-27 · JDK的安装与配置 1

三目表达式:

数据类型 变量=布尔表达式?条件满足时赋值:条件不满足时赋值

[展开全文]
iiangiiang · 2017-10-02 · Java运算符(三目运算符) 1

首个java程序:

public class Demo{

     public static void main(String [] args){

          System.out.prinln("Hello word!");

     }

}

[展开全文]
秦海易鸣 · 2017-05-23 · 第一个Java程序 0

classpath:类的 加载路径;

 

[展开全文]
秦海易鸣 · 2017-05-23 · CLASSPATH环境属性 0

java注释:

/**/多行注释

//单行注释;

/**   */文本注释;

[展开全文]
秦海易鸣 · 2017-05-23 · Java程序基本概念(注释) 0

授课教师

阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >

本课程相关云产品