java基础

程序存储于硬盘,运行时加载至内存,内存内开始划分区(1-代码区(code segment)存放代码,2-数据区(data )用于存储静态变量和字符串常量,3-栈(stack)用于存储局部变量,4-堆(heap)用于存储new出来的对象。

 

内存怎么区分不同的数据类型?占的长度和布局。

 

\u:表示16进制;

 

16进制以0x开头,所以最大的数是0xff;

8进制以0开头。

 

浮点类型:

3.14 ;314.0;.314等都是表示浮点,科学计数法的3.14e2(表示3.14*10的2次方);3,143-2(表示3.14*10的-2次方);

浮点型的精度???

 

UNICODE:统一编码方式,所以java采用Unicode(utf-8和utf-16两种),java采用utf-16。所有的字符用2个字节表示。

中国:GBK,GB2132。

 

int x,y=9表示:x为零(当x为成员变量时默认为0),y为9

string:字符串类型,一长串字符;

char(字符类型,只能是单个字符):char c;c="\u534e"(unicode表示法,这是一个"华"字),当字符变量是局部变量时,可以声明再赋值,但是当为成员变量时,不可以声明后再赋值,而是需要直接赋值。因为需要默认值

 

》》》》》》》》》》》》》》》》》》》》》》》》》》

读取当前系统的环境变量和系统变量:当前的默认变量有两种,一种是用户设置的在环境变量内,一种是系统自带的。在java种获取的方法如下:

1.环境变量:

test = System.getenv("this_secret");this secret是环境变量的名称。返回值是一个string

2.系统变量:

test = System.getproperty("key"),具体的去查百度。当想取到全部变量时。不加key,返回值是一个map类的

 

》》》》》》》》》》》》》》》》》》》》》》

读取文件并使用内部的值:

比如运行的环境内有一个文件,通过

 

public String testsec() {
        String filePath = "/secret-test/secret-sample";
        Map<String, String> map = new HashMap<String, String>();
        File file = new File(filePath);
        BufferedReader reader = null;
        String test = "secret is not exist";
        try {
            System.out.println("start to read: ");
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;

            int line = 1;
            // one line for one times
            while ((tempString = reader.readLine()) != null) {
                // show line number
                System.out.println("line " + line + ": " + tempString);
                if (!tempString.startsWith("#")) {
                    test = tempString;
                }
                line++;
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                }
            }
        }
        return test;
    }

即可以实现

 

spring boot:

 

 

github上有soringboot的demo。拉下来的demo后在controller内可以看到一个个接口的实现,一个

@RequestMapping("/volumesecret") 放在方法的上面即定义了该方法被调用的api的名称,比如这个例子里就是/volumesecret就是调用的api的endpoint。

 

 

spring boot:

 

log4j: 本章实现的是log4j2,就是升级版。具体动作如这片文章,说的很详细准确,实现的功能包括打印日志到文件及滚动转移到另一个文件rollingfile

https://blog.csdn.net/herojuice/article/details/85330743

log4j2 : spring本身有自带的日志处理系统,但是一般采用log4j2。并没有多写2,是真的有2.  集成方法:一共三步,首先pom内导入依赖,二是controller代码里写调用和输出。三是在reource下的log4j.xml里进行配置。。。首先在pom,xml内添加以下项(Springboot的pom.xml的用法,这里有个dependencies定义了无数个要是用的依赖,log4j2就是在这里定义,但是要同时排除掉一个spring默认的自带的log依赖),

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
	     <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-devtools</artifactId>
	        <optional>true</optional>
		</dependency>
	</dependencies>

这个pom就可以导入log4j2。

在java的controller内调用的方法:先实例化一个log的对象。然后通过调取info或者error等等方法打印日志

    private static Logger logger1 = LogManager.getLogger("test.go");
    private static Logger logger2 = LogManager.getLogger(HelloWorldController.class);



@RequestMapping("/hello")
    public String index() {
        logger1.info("------------info log1, this is test hello");
        logger2.info("++++++++++++info log2, this is test hello");


第三步,配置log4j2.xml  

<properties>
        <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
        <property name="LOGDIR">/log</property>
    </properties>

    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <JsonLayout compact="true" locationInfo="true" complete="false" eventEol="true" />        </Console>
        <RollingFile name="LogFile" fileName="${LOGDIR}/justin.log"
                     filePattern="${LOGDIR}/justin-%d{yyyy-MM-dd HH-mm}-%i.log" append="true">
            <JsonLayout compact="true" locationInfo="true" complete="false" eventEol="true" />
            <DefaultRolloverStrategy max="10"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="1 MB"/>
            </Policies>
        </RollingFile>
    </appenders>

 

 

spring boot的使用:有个application的类作为入口,其次在controller的文件夹里写class类

注解:

@SpringBootApplication  作为入口类
@RestController  在controller类的最顶端的注解
@RequestMapping("/hello")  在方法上方的注解,用于表示api调用的路径,比如在主api后面加上/hello即可调用这个方法

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值