专栏首页java学习java基础笔记1

java基础笔记1

Java基础 | 数据库 | Android | 学习视频 | 学习资料下载

最新通知

按照我去培训机构的学习经历,给初学还有自学Java 的同学一个基本的学习脉络,希望对大家有帮助。 不建议找到一本书死啃,没啥用,不要有这一页看不明白我就不往下看的想法。计算机的学习和原来的代数、几何不大一样。不是用几个公理推出所有结果的。!

首先我们学习Java需要有目标!应该知道先学哪些再学哪些 !不是盲目的去乱学去!

★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案

★【新】回复“学习资料”获取java学习电子文档

★【新】回复“聊天系统”获取java多人聊天系统项目源码!

温馨提示:北京的朋友想报班学习的话可以联系小编给你介绍(可以免费试听一个月)-----想让你先试听看自己适不适合报班不要浪费钱!

★请转发给身边需要的朋友!您的每一次转发都是对我的一份支持!!帮忙你我他!(关注本公众号获取更多学习资源!)

常用的操作系统:windows 7 10 xp vista 8 可视化界面 一般用户常用

Linux 开发员比较喜欢使用

操作系统位数:

x86 win32 软件只能在32位系统使用,可以在64位系统兼容使用

x64 只能在64位系统使用,不能在32位系统使用

Java平台无关性:

一个java(代码开源)程序可以在任意的操作系统使用,

通过不同的JVM将程序转换为对应的平台能使用的代码

一个C语言(不开源)编写的程序只能在windows系统使用

字节码:二进制语言

十进制语言:由0-9的数字组成 12; 第二位表示1*10 100 第三位表示1*10*10

二进制语言:由0-1的数字组成 第n位数字a表示的值为:a*2^(n-1) 100 第三位表示1*2*2 1*2^2

电路板:有很多回路,每个回路只有两种状态:通电、断电

将电脑电路板的通过/断电与0/1对应起来

存储信息时根据电路板的回路的状态转换对应的二进制数字(机器码表示)

将二进制数字(机器码)转换为人类常用的数据:ASCII码将每8位机器码转换为一些特殊符号、数字、英文

每8位机器码 称为一个字节(字节码)

字节码:在读写的时候按照字节进行读写,每8个机器码读取一次

中文比较特殊:两个字节表示一个汉字

十六进制:100 第三位表示1*16*16=1*(1*2*2*2*2)*(1*2*2*2*2)

2个16进制表示一个字节 8个二进制表示一个字节

---编译.java代码的命令:javac

一次性编译 多次使用 java语言是编译执行的语言

C语言程序没有编译执行,每次运行速度基本一致;

---运行.class程序的命令:java

java程序第一次运行时比较慢(因为需要编译),第二次以后非常快(不需要编译)

Java运行时(JVM处理):

1.类加载器(ClassLoader):加载类 初始化一个类

2.字节码校验器验证:java异常 例如:类转换异常、空指针异常、数字格式化异常等等

3.校验失败则抛出异常提示程序员,程序中断

校验成功则由解释器逐行解析执行代码语句,转换为对应的操作系统可以识别的内容

4.将解析后的内容传递给操作系统平台去执行

JVM Java Virtual Machine Java虚拟机 Java CPU Java 中心控制器

1.Java跨平台原理:

Java程序的运行机制:首先使用javac.exe将源程序(后缀.java)编译成与平台无关的字节码文件

(后缀.class),然后由Java虚拟机(JVM)读取并处理.class文件,Java解释器(JVM组件)

负责将处理后的文件在相应的平台上运行。

Java中所有程序都是在JVM中执行的,所以开发源代码时无需考虑平台;

只要根据不同的平台安装对应的JVM,就可以在不同的平台执行所有的JAVA程序了。

注:javac.exe编译器,保持在JDK的bin目录下

2.在Windows中搭建JAVA开发环境JDK:

Java Development Kit

Java版本:

JavaME 已淘汰 微型Java

JavaSE 标准版Java

JavaEE 企业版(工作时使用)

JDK最新版1.8 测试版 稳定版1.6 1.7

2.1 目录说明:

2.1.1 bin:存放各种JAVA命令,需要在Windows中注册后才可以使用;

常见的java命令:

javac:将源代码编译为class文件

java:执行class文件

javadoc:生成帮助文档及API

jar:将代码归档,生成一个jar包

备注:后缀为.exe的文件是一个应用程序的执行文件(客户端),

相当于java代码里面的主方法(main方法),

执行每一个java命令,相对于执行对应的源代码的主方法

2.1.2 lib:存放Java类库文件;一些jar包 工具类

2.1.3 jre: 客户端目录,供客户使用

2.1.4 demo:存放演示文件,可能没有这个目录

注:javabean 已淘汰 java小应用程序,java代码片段

2.2 环境变量说明:

JAVA_HOME:JDK根目录,设置后,软件使用JDK时默认在根目录下面搜索

PATH:bin目录的绝对路径,用于找到JAVA可执行命令;

CLASSPATH:类执行路径,指向lib目录,才能找到并执行类库中的类;

注:classpath默认指向当前目录,但可以通过命令set classpath修改;修改后可以跨盘执行类;

修改classpath只是修改类路径,对源代码路径没有影响;

跨盘编译源代码需要在源文件前面加上绝对路径,

例如:在C盘编译E盘的代码:javac E:/hello.java

在C盘执行E盘的类: set classpath=E:

java hello

3. 数据类型

3.1 八大基础数据类型及对应的封装类:

封装类 数据类型

Byte类: byte(8bit)

Short类: short(16bit)

Integer类: int(32bit)

Long类: long(64bit)

Float类: float(32bit)

Double类: double(64bit)

Character类:char(16bit)

Boolean类: boolean(1bit)

3.2 引用数据类型:数组、类(如:String)、接口

注:引用数据类型的初始值为null;

3.3声明变量

3.3.1 声明格式:

1.声明变量同时赋值:数据类型 自定义变量名=变量值;

2.声明变量暂不赋值:数据类型 自定义变量名; 变量名=变量值;

3.数据类型 自定义变量名=new 类型对应的封装类(参数);----引用数据类型常用的声明方法

注:声明变量会开辟一个内存空间,但初始空间为null,不能直接访问(未实例化),否则会出现空指针异常;

变量的赋值就是实例化的过程;

1及2为基础类型常用声明赋值的方法,但不适用于类变量;类变量一般采用第三种方法;

基础类型变量的第3种方法实例:int a=new Integer(10);等价于int a=10;

3.3.2 命名规则:

1.首字符:字母、下划线_、$;

2.其余字符:字母、下划线_、$、数字;

3.所有关键字不能作为变量名,即使符合以上两条规则;

3.3.3 作用域:

1.块的定义:每个块由大括号{}括起来,可以嵌套;每个块就是一段代码段。

2.全局变量:在类里面,方法外面声明的变量;作用域为整一个类

3.局部变量:在代码块或者方法里面声明的变量;作用域为声明它的大括号里面

4.静态的全局变量与局部变量重名时,优先选择局部变量

5.非静态的全局变量在静态方法中不能直接使用,只能通过对象引用

6.代码执行顺序:

局部按照从上到下的顺序逐个语句依次执行;

优先执行static语句、static代码块的语句;然后执行主方法的语句;

类实例化一个对象时,优先执行构造代码块的语句,再执行构造方法的语句;

4.数据类型转换

4.1 自动转换:转换前后类型兼容且转换后的类型表示的数据范围比转换前的类型大;例如:short a,byte b,int c=a+b;

4.2 强制转换:格式:(要转换的数据类型)变量名称;例如:int a=(int)1.25

4.3 所有基础数据类型都可以自动转换为String类型;例如:int a=5;String b=a+"a";则b="5a"

注意:由大范围强制转换为小范围时,数据会溢出,其溢出原理参考数据的机器码读取规则(C语言);

整数型原码:首位为符号,0正1负;

浮点数原码:位移阶数符合(0左1右)+位移阶数+数字符号(0正1负)+小数点后面的数字

将浮点数表示为s*2^j的形式,例如110.1101=0.1101101*2^11(小数点左移3个位置,j=11)

数据溢出:例如250(int)强制转换为250(byte)

250原码(int):0...11111010(中间还有22个0)

转byte:11111010,首位1表示负数,补110将首位变为0,所以数值为110,转为十进制表示就是-6;数据溢出了

计算机存储浮点数:

32位:0-22位为有效数字 23~30位为位移阶数 31位为符号位

64位:0-51 52-62 63

明天更新java基础笔记2

本文分享自微信公众号 - java学习(javaxxf),作者:许肖飞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 针对java初学者以及自学者的一篇入门教程

    Java基础 | 数据库 | Android | 学习视频 | 学习资料下载 最新通知 按照我去培训机构的学习经历,给初学还有自学Java 的同学一个基本的学习...

    Java学习
  • 1.3java的运行原理

    java的运行原理 这里我们简单分析一下我们的第一个应用程序,其中涉及到很多没有接触过的概念,大家可先阅读以下,以后会详细讲解。重点是理解java的运行原理。 ...

    Java学习
  • 为什么要学习java?

    大家好!这个网站的目标是为了方便大家更好的学习java&android编程。不管你是初学者还是一个经验丰富的程序员,相信这个网站对你都会有很大的帮助。只要大家每...

    Java学习
  • Java_面向对象_04

    面向对象是Java的核心,面向对象的核心是用人类解决问题的方法对复杂的客观问题进行分析,组织和解答,对于程序员而言,难点在于尽可能正确描述问题的抽象。面向对象的...

    酷走天涯
  • Java习惯用法总结

    在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(Joshua...

    哲洛不闹
  • Java习惯用法总结

    哲洛不闹
  • 你选的不是专业,而是阶级

    我是攻城师
  • 爱科技快报42期—运营商血拼微信前奏

    爱科技快报,做您贴心的资讯秘书。 1、工信部介入微信与运营商争端 收费或成定局 关于公众普遍关注的运营商对微信收费一事,工信部正在协调解决并会考虑运营商...

    罗超频道
  • 【JAVA零基础入门系列】Day3 Java基本数据类型

      前两篇已经将开发环境搭建完成,如果你已经按之前的教程按部就班的完成了部署,那么世界上最优秀的编程语言之一和世界上最优秀的IDE之一已经出现在你的电脑上(此处...

    弗兰克的猫
  • JavaSE(一)

    计算机在整个发展过程中,遵守的是:微型化、智能化、运算效率越来越高。最近已经出来了量子计算机、生物计算机等等。

    wolf

扫码关注云+社区

领取腾讯云代金券