初学java


  首先,学习java要知道,java是什么,编程是什么,编的是什么,程序是什么样的,java的程序是什么样的,java怎么运行?等等等等,这些疑问对于一个小白来说是必然的,和我一样,刚认识java就面临种种疑惑。 java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。

1.java的发展史

java由sun公司开发,java之父是James Gosling,java是一门面向对象的编程语言,也称为“高级编程语言”
java在1994年由sun公司推出,java的前身叫oak语言,特点是开源,免费
java的版本从java1.0开始,到目前的Jdk13
目前开发的常用版本:jdk8.0,jdk9.0

(2.java语言能做什么)

java语言主要用于互联网应用程序开发,例如天猫,京东,大型公司的项目管理系统,手机app的后台数据支撑系统,主要开发web系统(基于浏览器访问的),还有服务器后台存储的数据分析,数据查询等相关系统。

(3.java的版本分类)

a.java SE(J2SE)java platForm standard edition java的标准版本(称为java基础)

b.javaEE(J2EE)java platForm Enterprise edition java java的企业版本

c. javaME(J2ME)java platForm Microsoft edition java

2.环境变量的配置

一:首先学习java要有一个正确的环境,这就是java的环境配置
第一步:下载jdk 并安装,建议默认安装在C盘,官网下载
第二步:配置环境变量
我的电脑-》属性-》高级系统设置-》环境变量-》新建一个系统变量-》,变量名
JAVA_HOME:C:\program files\java\jdk1.8.0_144
在path路径下,配置%JAVA_HOME%\bin,需要将该路径放在path的最前面
或者直接在path下配置“C:\Program Files\Java\jdk1.8.0_144\bin”
第三步:测试
win+r:运行窗口输入命令 cmd
输入java
出现
win+R 打开cmd控制命令面板
然后输入 javac

在这里插入图片描述

出现这个页面就是配置成功了。
下面我们可以运行第一个java程序:

第一个java程序,我们就用经典的“hello world”,Java程序的文件后缀必须是*.java。

范例:定义一个新的文件:Hello.java

public class Hello {

     public static void main(String args[]) {

               System.out.println("Hello World !") ;

     }

3.关键字和标识符

    在java程序中,已经定义好的被预先使用的一些特殊的单词称为关键字
   一共由50个关键字(48+2个保留字),关键字都是小写的英文单词
  记住这几个重要的。
byte:字节类型  short:段整型
int:整型  long:长整型
float:单精度浮点型  double:双精度浮点型
char:字符型  boolean:布尔类型
void:空类型  null:空对象
if :条件分支(如果)  else:条件分支
switc:条件分支判断  case:条件分支其中一种情况
default:默认  break:推出条件或者跳出循环
continue:退出当前循环,继续下一次循环
for:循环  do:循环
while:循环  return:方法的返回
接下来是标识符 :
    在java程序中,所有由程序员自己命名的元素统称为”标识符“。
标识符命名规则:
   标识符由数字,字母,下划线和¥组成
   标识符不能以数字开头
   标识符区分大小写
   标识符不能是关键字
注意:
 定义类名的标识符:首字母必须大写,后面的单词的首字母大写。遵循大驼峰命名法(例如Xxxx,UserName,Userlnfo,Student)
 定义方法标识符:首字母尽量小写,后面的单词首字母大写,遵循小驼峰命名法(例如xxxXXX,userName )
 定义变量标识符:单词全部小写(username)
 定义包名:按模块分层级,使用公司的域名倒写,(例如com.sofeteem.xxxx,com.j2008.xxx)
在这里插入图片描述
这里引入一个变量的知识:

3.1变量和常量

 常量:
  定义:在java中,固定不变的数据量称为常量,常量也有内存,常量存放在被称为”常量池“的内存中
  变量:在java中用于保存一个数据的最小内存单元 称为”变量“,变量中每次只能存放一个值,变量的数值是可以被改变的。
在定义变量时,我们需要明确三要素:数据类型,变量名(标识符),变量值
学习了标识符
我们可以学习数据类型
1.基本数据类型:包括整数,浮点,字符,布尔类型
2.引用数据类型:包括类,数组,集合,接口等
这些加强记忆,记住这些基本概念。
基本数据类型在运行的时候需要进行转换,因为数据类型的长度不同所以要转换,简单的理解为就是一个数学方程有多个未知数的时候,就需要把它转换一下方便计算。
转换规则
byte->>short->>int->>float->>double-> >其中bolean类型不参与数据转换
char->>int->>

4.运算符

4.1算术运算符

运算符 说明

  • 加号两边是数值,可以运算,如果一边存在字符串,则当作连接符 a+b
  • 两个数相减,减号也可以表示负数 a-b -a
  • 需要注意::x++是先运算后自增,++x则是先自增后运算
  • 两个数相乘 其中不能省略 ab
    注意::两个数相除,必须保证数据类型一致,其中除数不能为0,否则出现算术异常 a/b
    % 对一个数取余数 a%b
    – 对一个数 自减1 a–:先赋值 然后再自减1–a:先自减1 再赋值 a–,--a
4.2关系(比较)运算符

定义:用于比较两个表达式之间的结果,结果返回true,false
比较运算符
这里举例 a,b
>  :比较左边的数是否大于右边的数,如果大于返回true,否则返回false a>b,3>5
<  :比较左边的数是否小于右边的数,如果大于返回true,否则返回false a< b
>=  : 比较左边的数是否大于或者等于右边的数,如果大于返回true,否则返回 1>=2
<= :比较左边的数是否小于或者等于右边的数,如果小于返回true,否则返回false 1<=2
=  : 比较两边是否相等,如果相等返回true,否则返回false,对于基本数据类型比较是否相等,对于引用数据类型比较它们的地址是否相等(比较地址就是比较是否同一块内存) 1==2与=号相反,比较两边的数是否不相等,如果不相等返回true,相等返回false 1!2
注意:不能写连缀 (不能连写)1 <3<5

4.3赋值运算符

将表达式的结果赋值给一个变量,只能赋值给变量 不能赋值给常量
例如 : a=3
  =  :将等号右边的结果赋值给左边的变量 int a = 2 将2赋值给a a就等于2
  +=  :计算后的赋值,将+=后 右边的结果赋值给左边 a+=2 等价于a=a+2
  -=  :计算后的赋值,将-=后 后边的值赋值给左边 a-=b 等价于 a=a-b
  =  :同上,将右边的结果赋值给左边 a * =b 等价于 a=a *b%= 同上,将右边的结果赋值给左边 a/=b 等价于a=a/b 其中b=0/= 同上,将右边的结果赋值给左边 a/=b 等价于 a=a/b 其中b不能为0

4.4逻辑运算符

  在java中用于两个或两个以上的表达式 取逻辑判断的结果 通常需要使用逻辑运算符。
  逻辑与(&):它的左右两边可以连接表达式,当两边表达式都成立时,整个结果为true true&true false&false false&true true&false
  逻辑或(|):左右两边的表达式任意一边成立则结果为true true|true false|true true|false false|true
  逻辑非 :对表达式取反 !false 就是true !true 就是false
  短路与,与&类似 短路特点:符号左边为false 右边不再运算 true&&true true&&false。。
  || 短路或,与|类似 短路特点:符号左边为true 右边不再运算 false||true false||false
  总结:&与&& 的区别 |和||的区别? 回答: 
1.  & 对于符号两边的表达式都会执行 && 符号左边为false 则右边不执行

2. |对于符号两边的表达式都会执行 ||符号左边为true 则右边不执行

3.& | 两边可以直接写数字按位计算,短路符号不能直接运算数字,位置转二进制

4.5位运算符

移位运算符 说明 案例
<< 左移:将一个数转成二进制后 整体往左移动位数n位,意味着扩大倍数,一个数向左移动n位,结果位这个数乘以2的n次方 3<<2=3*2的2次方
>> 右移:将一个数转成二进制后 整体往右移动位数n位,意味着缩小倍数,一个数向右移动n位,结果位这个数除以2的n次方(除不尽的情况 舍去位数 单独考虑) 8>>2=8除以2的2次方
>>> 无符号的右移,不考虑符号位,将这个数整体朝右移动n位
^n 异或: 1变0 0变1
~n 数值取反

5.进制转换

原理:
  进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。

  基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。

   位权是指,进位制中每一固定位置对应的单位值。

5.1十进制 转换 二进制

  1 12的0次方  1
  2 1
2的1次方  10
 4 12的2次方  100
** 对于2的倍数 1
2的n次方 转成二进制位1后面n个0
 16 1*2的4次方 10000
  对于任意十进制转换二进制 ,先查找比它小的且离它最近的2的倍数 ,然后差值再计算二进制(使用拆分法)
例如 28=16+8+4=11100
34=32+2=100010
96=64+32=1100000

5.2二进制 转 十进制

公式:从个位开始 每个位上的数乘以2的n次方的和 累加之和
100100=1 乘以2的2次方+1 * 2的5次方 =36
64+48+5=117
2的6次方 + 110000 2的平方+1 1000000 110000 100 1 110100 1110101=117

5.3二进制 转 八进制

方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。

例:将二进制的(11010111.0100111)B转换为八进制的步骤如下:

  1. 小数点前111 = 7;

  2. 010 = 2;

  3. 11补全为011,011 = 3;

  4. 小数点后010 = 2;

  5. 011 = 3;

  6. 1补全为100,100 = 4;

  7. 读数,读数从高位到低位,即(11010111.0100111)B=(327.234)O。
    在这里插入图片描述
    在这里插入图片描述

5.4 二进制 转 十六进制

方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。

例:将二进制的(11010111)B转换为十六进制的步骤如下:

  1. 0111 = 7;

  2. 1101 = D;

  3. 读数,读数从高位到低位,即(11010111)B=(D7)H。
    4.
    以下是代码实现的进制转换
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

6.流程控制

  在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。在清楚每条语句的执行流程的前提下,才能通过控制语句的执行顺序来实现我们要完成的功能。
  最重要的就是流程控制,因为这个板块涉及的内容比较多,对以后学习java是一个很重要的知识点,就需要搞清楚,在一个java程序中,各条语句的执行对程序的结果有直接影响,也就是说,各个语句的执行顺序对程序的结果有直接影响。
在程序中,可能出现不同的执行顺序,必须自上而下的顺序执行 或者条件判断的顺序或者循环执行的顺序。

6.1 顺序执行

  是程序中最简单的流程控制,按照代码执行的先后顺序,依次执行,程序中的大多数代码都是这样执行的。
  在这里插入图片描述
在这里插入图片描述

6.2条件分支

  如果条件成立,则执行语句块,如果条件不成立,则不执行语句块。
在这里插入图片描述
代码实现:
在这里插入图片描述

6.4 if…else 的条件分支

  如果条件成立,则执行语句块1,如果条件不成立,则执行语句块2。
在这里插入图片描述

在这里插入图片描述

6.5 选择条件判断

  switch 的表达式判断只能是等值比较 其中case的常量值 类型位:整数型(byte short int long),字符型 字符串型 枚举型
代码举例:
在这里插入图片描述

7. 循环

7.1 while循环

 在java程序中 ,重复的执行某一段代码,这个过程称之为循环,为了避免出现死循环。循环分为四个部分。
初始化表达式:

一条或者多条语句,这些语句完成一些初始化操作。

布尔表达式:

这是一个boolean 表达式,这个表达式能决定是否执行循环体。

循环体:

这个部分是循环体语句,也就是我们要多次做的事情。

在这里插入图片描述

7.2 do while 循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.4 for循环

   for循环的升级版就是 foreach循环

  for循环通常实在明确循环次数的情况下使用,它也分为四部分
在这里插入图片描述
在这里插入图片描述
循环总结:
问题:while 和 do while循环的区别?

  1.while循环判断条件是否成立 再执行循环体 do while 循环 先执行一遍循环体 再判断条件l do…while循环至少会执行一次循环体。

  for循环和while循环只有在条件成立的时候才会去执行循环体。

  控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

  在选择循环结构时,推荐的选择顺序是for – while – do…while,一般不建议使用do…while循环结构。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值