java基础入门-语法(1)
因为平时用到一些java的项目,比如ElasticSearch,zookeeper等,有时也想看看里面怎么实现的,或者看到别人分析原理时候会用到java源码,
自己也想跟着学一下,最起码能看懂别人的分析,所以就学习一下java的基础知识。有一定其他语言基础,java基础概念学起来也比较顺利。
这里记录下,以后自己忘了可以再复习。
一:下载jdk
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
到这里选择你所在的平台的jdk
我是在windows 64为,所以下载的是 在win下的 64 位平台 jdk8
安装配置自行gg
二:编辑器
我用的是idea编辑器, 导入jdk 8进去,然后就可以开始写代码
三:编写第一个程序HelloWorld.java
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
编写java类的一些规则:
1:类(class): 上面定义了一个类HelloWorld, 这个类的名字必须和.java 文件名相同
2:包(package):最上面的包 package JavaStudy.com.HelloWorld 必须和目录名一致
3:方法(main):在java中入口方法就是 main 方法
编译和运行:
用javac来编译,命令为:
javac HelloWorld.java
在当前路径下会生成一个HelloWorld.class 文件
用java命令来运行,命令为:
java HwlloWorld
四:数据类型
java中一共有8中基本数据类型
整数类型:byte,short,int和long
小数类型:float和double
字符类型:char
布尔类型:bool
小数类型的常量默认是double类型,声明float类型的常量需要使用F作为后缀
变量:
计算机语言通常需要在内存中存放数据,比如C语言中的变量,Java也有类似的变量。Java和C语言都是静态类型的语言。在使用变量之前,要声明变量的类型。
变量(variable)占据一定的内存空间。不同类型的变量占据不同的大小。Java中的变量类型如下:
存储大小 例值 注释
byte 1byte 3 字节
int 4bytes 3 整数
short 2bytes 3 短整数
long 8bytes 3 长整数
float 4bytes 1.2 单精度浮点数
double 8bytes 1.2 双精度浮点数
char 2bytes 'a' 字符
boolean 1bit true 布尔值
五:运算符
算术运算符:+、-、*、/ 和 %,两个整数相除,结果还是整数。
赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、~=、^=、<<=、>>= 、 >>>=、++ 和 --。
比较运算符:==、!=、<、<=、> 和 >=。
逻辑运算符:&&、|| 和 !。
位运算符:&、|、~、^、<<、>> 和 >>>。
六:控制结构
条件:if-else if-else、switch-case-default和三元运算符(?:)。
if (conditon1) {
statements;
...
}
else if (condition2) {
statements;
...
}
else {
statements;
...
}
switch
//选择 (switch)
switch(expression) {
case 1:
statements;
break;
case 2:
statements;
break;
...
default:
statements;
break;
}
循环:while、do-while、for和foreach。
//循环 (while)
while (condition) {
statements;
} //循环 (do... while)
do {
statements;
} while(condition); // 注意结尾的; //循环 (for)
for (initial; condition; update) {
statements;
}
跳过或跳出循环
在循环中,可以使用
break; // 跳出循环
continue; // 直接进入下一环
七:数组
java中数组就是包含多个相同类型元素。 可以用下面的方法来声明
int[] a
在声明数组时,数组所需的空间并没有真正分配给数组。我可以在声明的同时,用new来创建数组所需空间:
int[] a = new int[100];
这里创建了可以容纳100个整数的数组。相应的内存分配也完成了。
我还可以在声明的同时,给数组赋值。数组的大小也同时确定。
int[] a = new int[] {1, 3, 5, 7, 9};
public class arr1
{
public static void main(String[] args)
{
String[] strs = {"测试", "数组", "demo"}; for (String item : strs) {
System.out.println(item);
}
}
}
八:字符串
String是拥有“值语义”的引用类型,equals会按照内容进行比较,==按照地址比较。
public class str1
{
public static void main(String[] args)
{
String x = "demo";
String y = new String("demo"); System.out.println(x.equals(y)); //true
System.out.println(x == y); //false
}
}
高效修改字符串的StringBuffer
public class strbuf
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer()
.append("demo")
.append("-stringbuffer")
.append(" java demo");
System.out.println(sb);
}
}
还有一些特殊字段,接口,内部类,继承,多态,封装,以后在写。。。
这个blog写的java基础和java进阶都可以看看:
http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html
java基础入门-语法(1)的更多相关文章
- 二、JAVA基础、语法
第二节:JAVA基础.语法 1.修饰符.变量: Java中主要有如下几种类型的变量 局部变量 ...
- JAVA 基础基本语法---常量与变量
JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- java基础——入门篇
整体大纲图 1.认识java 核心知识点:JVM.搭建Java开发环境.java的发展史.java特点.java程序类型.垃圾收集器.J2SE下载和安装.环境变量的配置和测试.以及简单的开发工具的使用 ...
- Java基础(1) - 语法 & 概念
Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...
- Java基础入门知识
Java编程入门知识 知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...
- Java电话薄项目(Java基础入门)
面向对象程序设计(Java基础) 1.项目介绍: 该项目能够实现对电话薄的添加,查找,修改,删除,排序等基本操作. 用户进入系统中首先进入主菜单中,在主菜单中可以选择相应的操作,用户可以选择每项操作前 ...
- JAVA基础入门
Java入门基础 1.IDE->Eclipse 新建程序步骤 1.创建一个Java项目 2.创建一个包(package) 也就相当于C#中的命名空间C++中的头文件 3.创建一个类 这样就完成了 ...
- Java基础try-with-resource语法源码分析
众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为finally ...
随机推荐
- C#程序中设置全局代理(Global Proxy)
1. HttpWebRequest类的Proxy属性,只要设置了该属性就能够使用代理了,如下: 1 //设置代理 2 WebProxy WP = new Web ...
- 如何在Ubuntu 18.04上安装Django
Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序. 根据您的需要,有不同的方法来安装Django.它可以使用pip在系统范围内安装或在 ...
- Codeforces Round #454 Div. 1
B:考虑2*m怎么构造.因为要求相邻的数不能再相邻,容易想到黑白染色之类的东西,考虑染个色然后大概把黑点扔一边白点扔一边.显然m<=3时无解.对m>4,m为偶数时,如1 2 3 4 5 6 ...
- POJ2763-Housewife Wind-树上单点修改区间求和
这道题可以树链剖分做.但是最近在给学弟搞数据结构复习了LCA树状数组RMQ 然后就搞了一发LCA+树状数组维护. dis数组维护当前点到根节点的权值和.则dis(u,v) = dis[u]+dis[v ...
- UOJ272 [清华集训2016] 石家庄的工人阶级队伍比较坚强 【分治乘法】
题目分析: 首先不难注意到式子就是异或卷积,所以考虑用分治乘法推出优化方法.我们把一个整体$f$拆成$f-,f\pm,f+$,然后另一个拆成$g-,g\pm,g+$.这样做的好处是能更清楚的分析问题. ...
- monkey测试的脚本
monkey测试脚本编写思路: 配置文件: 1.测试安装包路径 2.执行monkey脚本的次数 3.执行monkey的点击数 4.包名 读取配置文件: 1.配置文件有一个section 2.读取配置文 ...
- Unnitest测试框架总结
Unnitest总结 第一点,setUp和tearDown方法 l 每次执行test开头的用例都会执行setUp和tearDown方法 l 如: import unittest class M ...
- 【支付宝】支付 系统繁忙,请稍后再试(ALIN10146)
https://openclub.alipay.com/read.php?tid=6918&fid=60 我碰到的是这个问题导致 把signType 改为 RSA2 改成
- Luogu P4643 【模板】动态dp(矩阵乘法,线段树,树链剖分)
题面 给定一棵 \(n\) 个点的树,点带点权. 有 \(m\) 次操作,每次操作给定 \(x,y\) ,表示修改点 \(x\) 的权值为 \(y\) . 你需要在每次操作之后求出这棵树的最大权独立集 ...
- 【UOJ#450】【集训队作业2018】复读机(生成函数,单位根反演)
[UOJ#450][集训队作业2018]复读机(生成函数,单位根反演) 题面 UOJ 题解 似乎是\(\mbox{Anson}\)爷的题. \(d=1\)的时候,随便怎么都行,答案就是\(k^n\). ...