今天开始学习Java

1.什么是Java?

  Java是1995年由sun公司推出的一门极富创造力的面向对象编程语言,是由Java之父詹姆斯格斯林博士设计的。

  Java名字的由来:据说,java刚刚设计出来时叫做OAK,后来注册时OAK已经被注册,后来他们喝着咖啡思考新的名字,看到手里热气腾腾得咖啡,想到了生产咖啡的爪哇岛,因此Java语言就命名为Java,它的标志就是一杯热气腾腾的咖啡。

  Java程序既是编译性的,也是解释性的。

  Java是第三代编程语言,第一代编程语言是机器语言,也就是只有机器能识别的 01011011这样的二进制语言,第二代语言是汇编语言,Java,c等高级编程语言都可以算作第三代语言。

  java语言的一个核心:
    jdk, java development kits---面向开发人员
    jre, java Runtime Environment---服务器上

  

  Java的两个核心机制

    java虚拟机---(以字节码为指令的CPU)---*.class
      java编译器-->字节码-->类加载器进行验证-->虚拟机运行

    垃圾回收机制
      public class ...{
      int a = 1;
      }
      c/c++垃圾回收由程序员去运行

  Java编程语言(一门纯面向对象)的特点:
    1, 面向对象
      (1), 封装
      (2), 继承
      (3), 多态
    2, 安全性
    3, 跨平台,Java是一种跨平台的编程语言,一次编写,到处执行。

2.Java是如何运行的?

  Java程序经过编译之后可以转换为一种叫做Java字节码的中间语言,这个编译器就是我们常用的JDK,这个生成的字节码再交给Java虚拟机,由Java虚拟机将字节码变成机器可以识别的机器语言,这个Java虚拟机就是我们常用的JRE。具体过程如下图:

3.Java的三个版本

  JavaSE:Java的标准版,主要用于桌面应用程序开发。同时也是Java程序的基础。比如Oracle11g的安装包,eclipseIDE开发工具,JavaSE包含了Java的基础,比如JDBC就是Java链接数据库的操作,以及网络通信多线程等技术。

  JavaEE:是Java的企业版,主要用于企业级分布式网络程序,比如电子商务和ERP企业管理系统,其核心为企业Java组建模型。例如淘宝京东都是用JavaEE开发的。JavaEE包含了JavaSE的全部功能,我们可以在JavaEE中直接调用JavaSE的所有方法,比如在服务器上开启线程和数据流等等。

  JavaME:主要应用于嵌入式系统的开发,例如手机等移动设备。

4.什么是API?

  应用程序编程接口,JavaAPI文档是Java开发中不可缺少的帮助文档,他记录了JAVA语言中海量的API,主要包括了类的继承结构,成员变量,成员方法,构造方法以及静态成员等等一些详细的说明和帮助信息。

  API在线查看:http://docs.oracle.com/javase/8/docs/api/index.html

  也可以从Oracle官网下载离线API文档到电脑。

5.搭建Java开发环境

  从Oracle下载电脑相应操作系统位数的JDK安装包。下载安装之后,我的电脑-右键-属性-高级系统设置-环境变量-系统变量

  创建两个个系统变量:

    变量名:JAVA_HOME (用来保存JDK的安装路径)

    变量值:C:\Program Files\Java\jdk1.8.0(电脑的jdk安装路径,名称全英文)

    变量名:CLASSPATH (JDK类库路径)

    变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

  选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。

    变量名:Path (配置所有的系·统环境命令)

    变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  配置完成后在操作台输入命令 javac  和   java检查是否配置成功。

  这是java的环境配置,配置完成后直接启动eclipse,它会自动完成java环境的配置。

6.一个简单的java程序

  打开文本编辑器,输入如下代码

public class hi{
    public static void main(String[] args){
        System.out.println("hi java");
    }
}

  简单解释一下以上Java代码:public是四种权限修饰符之一,代表的意思是公共的,class声明后面的内容是一个类,static表示是静态的,void代表没有返回值,main表示一个方法,()代表参数,string代表参数类型,[ ]表示数组,args参数名,{}里是方法体,System.out.println是在控制台上打印出来。

  然后修改文件名为hi.java

  打开控制台,找到文件所在目录,输入如下

  输入javac hi.java进行编译,可以看到文件夹下多了一个叫做hi.class的文件

  在输入java hi 回车,可以看到屏幕输出了我们要输出的文字

7.Java需要注意的地方

  类名需要和文件名一致。

  标识符:

    凡是需要自己命名的地方都是标识符。标识符不能与关键字重复。

  严格区分大小写。

  保留字:goto 等。

  标识符能不能艺术字开头。

  类名首字母最好大写。

8.Java的数据类型

  分为基础数据类型和引用类型两大类。基础数据类型又分为四类八种:

  基础数据类型不能 =null,引用类型可以

  1, 整数型
    byte 2的8次方(取值范围--<-128~127>)--2个字节
    short 2的16次方--4个
    int 2的32次方--6个
    long 2的64次方--8个
  2, 浮点型
    float 小数点后面7位--4个  单精度 32位二进制描述

    double 小数点后面15位--8个  双精度 64位二进制描述
  3, 布尔型
    boolean(只有两个值, true, false)--1个
  4, 字符型

    字符用单引号,字符串用双引号
    char--2个字节

    char a = 'q';

    需要注意的几种赋值:

      char c = 98;----ASCII,代表ASCII码表第98位
      char c = '\n'; 转义字符,换行
      char c = '\u0061';----unicode编码

  字符串
    String
    String s = "hanqi";

  java引用类型(对象):--可以=null
    所有的类
    所有的接口
    所有的数组

9.Java运算

  算术运算符:+ - * / % ++ --

  关系运算符:> < >= <= == !=
  逻辑运算符:! &(并且, 和) &&(短路运算符) | || ^(异或)

  异或运算符: 转换成二进制的形式来对比每一位数, 不一样的为1, 一样的为0

  位运算符:>> << >>>(无符号右移)

  赋值运算符:= += -= *= /= %=

  字符串连接运算符:+

  需要注意的地方: 在输出的时候, 只要有一个参数是字符串, 整个输出结果都是字符串

  三元运算符(表达式)(三目运算符):布尔值?值1:值2

  

例子:

public class hi{
    public static void main(String[] args){
        int a=3;
        System.out.println(a++);//先输出a,3,再自增,4
        System.out.println(++a);//a再次自增,5,输出a
        System.out.println(--a);//a-1,再输出a
        System.out.println(a--);//输出a,再a-1
    }
}

//异或运算符是用符号“^”表示的,其运算规律是:
//两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
public class hi{
    public static void main(String[] args){
        int a=15;
        int b=2;
        System.out.println("a 与 b 异或的结果是:"+(a^b));
    }
}

分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

public class hi{
    public static void main(String[] args){
        System.out.println("1"+(1+1));
        System.out.println("1"+1+1);
    }
}

public class hi{
    public static void main(String[] args){
        System.out.println(5<<2);//运行结果是20
        System.out.println(5>>2);//运行结果是1
        System.out.println(5>>3);//结果是0
        System.out.println(-5>>3);//结果是-1
        System.out.println(-5>>>3);//结果是536870911
    }
}

5<<2:

首先会将5转为2进制表示形式(java中,整数默认就是int类型,也就是32位):

0000 0000 0000 0000 0000 0000 0000 0101           然后左移2位后,低位补0:

0000 0000 0000 0000 0000 0000 0001 0100           换算成10进制为20

5>>2:

还是先将5转为2进制表示形式:

0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:

0000 0000 0000 0000 0000 0000 0000 0001

-5>>3:

-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011

-5右移3位后结果为-1,-1的二进制为: 1111 1111 1111 1111 1111 1111 1111 1111   // (用1进行补位)

-5无符号右移3位后的结果 536870911 换算成二进制: 0001 1111 1111 1111 1111 1111 1111 1111   // (用0进行补位)

通过其结果转换成二进制后,我们可以发现,正数右移,高位用0补,负数右移,高位用1补,当负数使用无符号右移时,用0进行部位(自然而然的,就由负数变成了正数了)

注意:笔者在这里说的是右移,高位补位的情况。正数或者负数左移,低位都是用0补。

Java之初识的更多相关文章

  1. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  2. Java入门——初识Java

    Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...

  3. JAVA:初识Java · Xer97

    1. 什么是Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语言作为静 ...

  4. 对Java的初识

    什么是计算机程序:    为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合.(简单来说就是记算机为完成某些功能生产的一系列有序指令集合); Java的来历:  Java的初期开发早在 ...

  5. Java【初识篇】语言概述

    什么是计算机语言 语言:是人与人之间用于沟通的一种方式.例如:中国人与中国人用普通话沟通.而中国人要和英国人交流,就要学习英语.计算机语言(编程语言):人与计算机交流的方式.如果人要与计算机交流,那么 ...

  6. Java设计模式----初识适配器模式

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  7. java开发初识

    jdk目录相关介绍: bin:存放的是java的相关开发工具 db:顾名思义jre附带的轻量级数据库 include:存放的是调用系统资源的接口文件 jre:java的运行环境 lib:核心的类库 s ...

  8. Java自学-初识

    1.Java介绍 Java是一种开发语言,人和人说话用嘴说,人和计算机说话就靠开发语言.Java编写的程序可以让计算机执行一些列命令,达到人们想要的目的.比如说想要统计一年消费情况,如果人工统计,就要 ...

  9. Java学习 · 初识 容器和数据结构

    容器和数据结构 1.   集合的引入 a)     集合的使用场景:需要将一些相同结构的个体整合到一起时 i.           新闻列表 ii.           邮件列表 iii.       ...

随机推荐

  1. jQuery中易混淆知识点总结(持续更新)

    find()与children() <body> <ul class="level-1"> <li class="item-i"& ...

  2. iOS安全攻防之越狱设备检测

    iOS 越狱(iOS Jailbreaking),是用于获取苹果公司便携装置操作系统iOS最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手 ...

  3. VR全景智慧城市,开启“上帝视角”体验‘身临其境’

    VR全景把不同的场景 分为若干个VR视角点 进入一个视角点,用户便能开启"上帝视角" 转动手机,身临其境地360度转动察看,对场景的全貌和细节一目了然.   人生处处有尴尬 比如大 ...

  4. 全景智慧城市常诚——没接触过VR全景的你就是目前VR最大的新闻

    据调查,自2015年开始,VR(虚拟现实)技术在传媒行业中的应用呈现井喷式增长,各大国际主流媒体纷纷在新闻报道中使用VR技术.国内运用VR报道新闻最早在2015年12月,财新网利用VR技术对深圳山体垮 ...

  5. 点评阿里JAVA手册之异常日志(异常处理 日志规约 )

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:异常处理 日志规约 本文难度系数为一星(★) 本文为第三篇 ...

  6. 【JAVAWEB学习笔记】网上商城实战5:后台的功能模块

    今日任务 完成后台的功能模块 1.1      网上商城的后台功能的实现: 1.1.1    后台的功能的需求: 1.1.1.1  分类管理: [查询所有分类] * 在左侧菜单页面中点击分类管理: * ...

  7. nodeJs中npm详解

    npm 是 Node.js 的模块依赖管理工具.作为开发者使用的工具,主要解决开发 node.js 时会遇到的问题.如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者 ...

  8. 初识 ActiveMQ

    其实算不上初识了,工作一年来一直都有接触 mq 相关的东西.但是,从来都是粘贴复制别人的配置代码,却从未认真系统的学习过它,现在线上用 mq 的项目出问题了,老板在后面拿枪指着呢,不得不好好研究下了. ...

  9. win10下面visual studio, sublime ctrl+shift+f快捷键失效的原因

    在visual studio 和sublime中,经常遇到ctrl+shift+f不能用,然后输入法总是自动切换成繁体中文. 实在百思不得其解. 今天才发现,我用的windows 10自带的微软拼音输 ...

  10. Eclipse中SVN设置文件为ignore后重新添加至版本控制

    先前把需要版本控制的文件夹ignore了,用了很长时间找解决方法,结果发现竟如此简单,对eclipse的功能不熟悉啊. 方法如下: 在Window->Show View -> Naviga ...