Java基本语法笔记
1. 基本格式:
public class HelloWprdApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 10;
num = 30;
System.out.println("num="+num);
System.out.println("num*num="+num*num);
}
}
String args[]:传统的写法,c、c++都用该种写法;
String[] args :Java的写法,但Java也能用上面的方法定义。
实际上String[] args 是定义一字符串数组变量。
在java中,String[] args和String args[] 都可以定义数组。二者没有什么区别。为规范编码,推荐使用String[] args。另外args可以随意改,和其它变量一样,它只不过是一变量名,只要符合变量名规则即可。
打印语句:
System.Out.println(""); 带有换行
System.Out.print(""); 不带有换行
java申明一个类的方法有两种:
<i>public class 类名称要和文件的名称一样,否则不能编译
<ii>class 类名称可以和文件的名称不一样,编译时候生成的是 类名称.class
2.java基本数据类型
数据类型 大小/位 可表示的数据范围 默认值
long(长整数) 64 -2^63~2^63-1 0L
int(整数) 32 -2^31~2^31-1 0
-0x80000000~0x7FFFFFFF -2147483648~2147483647
short(短整数) 16 -32768~32767 0
byte(位) 8 -128~127 0
char(字符) 2 0~255 \u0000
float(单精度) 32 -3.4E38~3.4E38 0.0f 定义为float型的时候,数值的后面要加上f
double(双精度) 64 -1.7E308~1.7E308 0.0d 注意使用浮点型数值的时候,默认使用的是double型,后面加上f的时候才使用float型
boolean 1 flase true flase
当数值发生溢出的时候,会形成循环,即最大值加上1后会变成最小值
强制转换类型的两种方法
Integer.MAX_VALUE+2L 在加的数字后面加上L表示强制转换成长整形
((long)Integer.MAX_VALUE+2) 在加的数字前面加上long实现强制转换
3.常用的转义字符
转义字符 描述
\f 换页
\\ 反斜线
\b 倒退一格
\' 单引号
\r 归位
\" 双引号
\t 制表符tab
\n 换行
4.类型的转换
当表示范围小的数值类型加上大的数值类型的时候,会自动转换成大的数值类型,比如short+int,会自动把结果转换成int型
当数值类型加上字符串的时候,都转换成字符串类型
5.位运算符
位运算符 描述
& 按位与
| 按位或
^ 异或(相同为0,不同为1)
~ 取反
<< 左移位
>> 右移位 正数右移的时候左边补零,负数左边补一
>>> 无符号移位 正数负数右移的时候左边都补零
数组中,数组的名字,即地址存在栈内存中,地址指向的内容存在堆内存中,开辟新的堆内存必须要用关键字new,栈内存中存储的是堆内存的访问地址
当堆空间没有任何栈空间引用的时候,就成为了垃圾空间,等待这垃圾回收机制进行回收
数组的复制:System.arraycopy(i1,3,i2,1,3)源数组名称 源数组开始点 目标数组名称 目标数组开始点 复制长度
6.逻辑运算符优先级
7.方法的定义方式
public static void 方法名字(类型 参数,类型 参数。。。){
程序语句
}
8.可变参数
fun();
fun(1);
fun(1,2,3,4,5);
public static void fun(int... arg){
for(int i=0;i<arg.lenght;i++){
system.out.print(arg[i]+"、");
}
}
9.foreach语法
for(数据类型 变量名称:数组名称)
public static void fun(int... arg){
for(int x:arg){
system.out.print(x+"、");
}
}
10.类的定义
class Person{
private string name;//把属性封装,讲不能通过XX.name访问,必须通过setter和getter方法设置和取得
private int age;//private也可以用-表示
public Person(String name,int age){ //构造函数,和类名同名
this.setName(name);
this.setAge(age);
}
public void tell(){
system.out.println();
}
}
对象的创建和使用
类名 对象名称 = null;
对象名称 = new 类名();
或者
类名 对象名称 = new 类名();
匿名对象
new Person("张三",30).tell();//匿名对象,匿名对象一般是作为其他类实例化对象的参数传递,匿名对象是一个堆内存空间,没有栈空间
类设计分析
<1>根据要求写出类所包含的属性
<2>所有的属性都必须进行封装(private)
<3>封装之后的属性通过setter和getter设置和取得
<4>如果需要可以加入若干构造方法
<5>再根据其他要求添加相应的方法
<6>类中的所有方法都不要直接输出,而是交给被调用处输出
<7> 永远不要继承一个已经实现好的类,只能继承抽象类或者实现接口,因为一旦发生对象的向上转型关系后,所调用的方法一定是被子类所覆写的方法
11.string对象
使用==比较string对象的时候比较的是string的地址
使用.equals方法比较的是string对象的内容
<1>使用string str = new string("hello");创建一个新的string对象,"hello"创建一个对象,new关键字又创建一个对象,所以建议使用第二种方法创建对象
<2>string str = "hello";
注意:字符串的内容不可以修改,所以要避免对字符串的内容进行连续的修改,因为修改一次就要开辟两个新的内存空间,通过断开和连接进行字符串的修改。
要通过StringBuffer类进行修改。
Java基本语法笔记的更多相关文章
- java基础语法笔记
这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...
- Java 学习笔记(1)——java基础语法
最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...
- Java编程基础阶段笔记 day04 Java基础语法(下)
day04 Java基础语法 (下) 笔记Notes要点 switch-case语句注意 switch-case题目(switchTest5) 循环执行顺序 if-else 实现3个整数排序 Stri ...
- Java语法笔记
目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用. Java类 先执行静态构造函数,再执行静态方法或静态字段,所以 ...
- java JDK8 学习笔记——助教学习博客汇总
java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
- java jvm学习笔记二(类装载器的体系结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 在了解java虚拟机的类装载器之前,有一个概念我们是必须先知道的,就是java的沙箱,什 ...
- Android(java)学习笔记160:Framework运行环境之 Android进程产生过程
1.前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
随机推荐
- Struts2进行url重写
一般来说我们在用Struts2进行开发的时候我们的访问url都是带上一些类似于.action或者.do还有用?传递参数,这种访问方式与静态页面的访问相比,我就可以用一些开源的组件来进行url的重写,以 ...
- [转]jQuery EasyUI自定义DataGrid的Editor
原文地址:http://www.jeasyuicn.com/post-3.html 官网datagrid的api:http://jquery-easyui.wikidot.com/document:d ...
- [转]html js中name和id的区别和使用分析
js中web页面元素的调用可以有两种识别方法:id和name 自己在用的过程中总结一下id和name的使用区别. 一,使用范围 除 BASE, HEAD, HTML, META, SCRIPT, ST ...
- 关于mysql数据库行级锁的使用(一)
项目上一个业务需要对某条数据库记录加锁,使用的是mysql数据库 因此做了一个关于mysql数据库行级锁的例子做测试 package com.robert.RedisTest; import java ...
- ES6新特性:Javascript中的Reflect对象
Reflect介绍: Reflect这个对象在我的node(v4.4.3)中还没有实现, babel(6.7.7)也没有实现 ,新版本的chrome是支持的, ff比较早就支持Proxy和Reflec ...
- GisUtil工具类:将WKT(wellKnownText)文本转换为ElasticSearch识别的空间对象字符串形式
ElasticSearch中的Geo Shape Type: https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-g ...
- 【POJ 2480】Longge's problem(欧拉函数)
题意 求$ \sum_{i=1}^n gcd(i,n) $ 给定 $n(1\le n\le 2^{32}) $. 链接 题解 欧拉函数 $φ(x)$ :1到x-1有几个和x互质的数. gcd(i,n) ...
- 关于context你必须知道的一切
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 本文大多数内容翻译自:http://w ...
- HDFS源码分析:NameNode相关的数据结构
本文主要基于Hadoop1.1.2分析HDFS中的关键数据结构. 1 NameNode 首先从NameNode开始.NameNode的主要数据结构如下: NameNode管理着两张很重要的表: 1) ...
- Top K 问题
Example Given [3,10,1000,-99,4,100] and k = 3. Return [1000, 100, 10]. 解法有以下几种: 1. bubble sort k tim ...